1
1
openmpi/opal/mca
Jeff Squyres c6d9bf906e configury: ensure wrapper static LIBS is filled properly
In core library portions of the configury (e.g., top-level
configure.ac itself), we were calling AC_CHECK_LIB and
OPAL_CHECK_FUNC_LIB to check for various libraries.

'''SIDENOTE:''' It turns out that modern Autoconf has AC_SEARCH_LIBS,
which does just about exactly what OPAL_CHECK_FUNC_LIB does.  So this
commit effectively replaces OPAL_CHECK_FUNC_LIB with AC_SEARCH_LIBS.

However, we never bothered to add these found libraries to the wrapper
compiler list of libraries used for static linking (doh!).  We've been
getting lucky for quite a while that components were adding the same
libraries to their wrapper compiler LIBS list.  

This is problematic, however, if we don't build some of these
components.  For example, Paul Hargrove noticed that if he configured
with --disable-shared --enable-static --disable-io-romio, ROMIO was no
longer adding some libraries to the wrapper LIBS list -- libraries
that just happened to also be needed by core OPAL/ORTE/OMPI layers.

The solution is not to use AC_CHECK_LIB or OPAL_CHECK_FUNC_LIB, but
use a pair of new macros:

 * OPAL_SEARCH_LIBS_CORE: a wrapper around AC_SEARCH_LIBS.  If we add
   something to $LIBS, then also add it to the wrapper list of static
   libraries.  This is the main piece of functionality that was
   wrong/missing.
 * OPAL_SEARCH_LIBS_COMPONENT: similar to OPAL_SEARCH_LIBS_CORE, but
   instead of directly adding it to the wrapper list of static
   libaries, add it to <framework>_<component>_LIBS (which eventually
   gets slurped up into the wrapper list of static libraries.  See the
   lengthy comment in config/opal_setup_wrappers.m4 near the beginning
   of OPAL_SETUP_WRAPPER_INIT() for a more detailed explanation).
   Most components did this correctly already, but one or two weren't
   right, so I implemented this second macro quite similar to the
   first and put it everywhere we already used AC_SEARCH_LIBS or
   OPAL_CHECK_FUNC_LIB.

This needs to soak for a day or two on the trunk before moving to the
v1.8 branch.

Refs trac:4834

cmr=v1.8.2:reviewer=ggouaillardet

This commit was SVN r32447.

The following Trac tickets were found above:
  Ticket 4834 --> https://svn.open-mpi.org/trac/ompi/ticket/4834
2014-08-07 23:54:45 +00:00
..
allocator Cleanup the moved component's Makefile.am to use the opal instead of ompi directories 2014-07-31 04:41:04 +00:00
backtrace configury: ensure wrapper static LIBS is filled properly 2014-08-07 23:54:45 +00:00
base Fix. 2014-07-31 21:54:07 +00:00
btl usnic: update help messages 2014-08-07 20:50:29 +00:00
common Cleanup the moved component's Makefile.am to use the opal instead of ompi directories 2014-07-31 04:41:04 +00:00
compress The final step of the RFC: convert the <foo>libdir and friends to fit their respective code areas, and equate them all at the top. Note that we can't entirely separate things as the opal_install_dirs framework can't handle separated locations for the various trees. 2014-05-08 02:01:35 +00:00
crs configury: ensure wrapper static LIBS is filled properly 2014-08-07 23:54:45 +00:00
dstore Per the RFC issued here: 2014-06-01 04:28:17 +00:00
event Silence warning 2014-08-05 15:33:12 +00:00
hwloc orte_rmaps_numa_node_t -> opal_rmaps_numa_node_t 2014-07-31 19:58:47 +00:00
if The final step of the RFC: convert the <foo>libdir and friends to fit their respective code areas, and equate them all at the top. Note that we can't entirely separate things as the opal_install_dirs framework can't handle separated locations for the various trees. 2014-05-08 02:01:35 +00:00
installdirs The final step of the RFC: convert the <foo>libdir and friends to fit their respective code areas, and equate them all at the top. Note that we can't entirely separate things as the opal_install_dirs framework can't handle separated locations for the various trees. 2014-05-08 02:01:35 +00:00
memchecker George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
memcpy The final step of the RFC: convert the <foo>libdir and friends to fit their respective code areas, and equate them all at the top. Note that we can't entirely separate things as the opal_install_dirs framework can't handle separated locations for the various trees. 2014-05-08 02:01:35 +00:00
memory George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
mpool Use opal_getpagesize to get the proper page size 2014-08-05 05:30:03 +00:00
pstat In case someone wants to use the pstat framework, we need to have the usual open/close functions that were lost in the conversion to the new framework system 2014-07-07 13:53:29 +00:00
rcache Cleanup the moved component's Makefile.am to use the opal instead of ompi directories 2014-07-31 04:41:04 +00:00
sec Turns out that valgrind has issues with strings that don't fall on nice 4-byte alignments with some optimized builds. So make the default security credential a nice 7-characters (so we get 8-bytes with the NULL terminator) to make valgrind shut up. 2014-05-22 00:36:25 +00:00
shmem configury: ensure wrapper static LIBS is filled properly 2014-08-07 23:54:45 +00:00
timer Use opal_getpagesize to get the proper page size 2014-08-05 05:37:44 +00:00
Makefile.am Update the copyright notices for IU and UTK. 2005-11-05 19:57:48 +00:00
mca.h Refs trac:3275. 2012-09-11 20:47:24 +00:00