Commit ffcc4904 authored by Committed by Kenneth RaffenettiBrowse files
Create a dummy function that calls all ROMIO public symbols.
All ROMIO public symbols are being added into the libromio convenience library, which is LIBADD'ed into libmpi. The correct behavior would be for libtool to add -Wl,--whole-archive to the link line, thus forcing all symbols in libromio to end up in libmpi. However, in some cases, this is not working out correctly. For example, with the Absoft compiler, the linker flags were being reordered thus causing the -Wl,--whole-archive flag to not correspond to libromio. Consequently, only symbols that were used from within the other functions of libmpi were being included. For example, Absoft's linker reordering is below: ----8<---- % af77 -v -shared -fPIC src/mpi/attr/.libs/lib_libmpi_la-attrutil.o src/mpi_t/.libs/lib_libmpi_la-pvar_write.o \ -Wl,--whole-archive src/mpi/romio/.libs/libromio.a -Wl,--no-whole-archive \ -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/src/mpl/.libs \ -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/src/openpa/src/.libs \ -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/install/lib \ -L/sandbox/balaji/build-absoft/src/mpl -L/sandbox/balaji/build-absoft/src/openpa/src \ /sandbox/balaji/build-absoft/src/mpl/.libs/libmpl.so /sandbox/balaji/build-absoft/src/openpa/src/.libs/libopa.so \ -lrt -lpthread -O0 -Wl,-soname -Wl,libmpi.so.12 -o lib/.libs/libmpi.so.12.0.0 gcc src/mpi/attr/.libs/lib_libmpi_la-attrutil.o src/mpi_t/.libs/lib_libmpi_la-pvar_write.o \ /sandbox/balaji/build-absoft/src/mpl/.libs/libmpl.so /sandbox/balaji/build-absoft/src/openpa/src/.libs/libopa.so \ -L/soft/com/packages/absoft11.0/shlib64 -Wl,--whole-archive -Wl,--no-whole-archive \ -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/src/mpl/.libs \ -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/src/openpa/src/.libs \ -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/install/lib \ -L/sandbox/balaji/build-absoft/src/mpl -L/sandbox/balaji/build-absoft/src/openpa/src \ -Wl,-soname -Wl,libmpi.so.12 -shared -o lib/.libs/libmpi.so.12.0.0 src/mpi/romio/.libs/libromio.a \ -lrt -lpthread -laf90math -lafio -lamisc -laf77math -lm -lmv ----8<---- In the past, we got lucky in two ways: 1. We were including all the Fortran 77 symbols into libmpi. Since the Fortran symbols were calling the C ROMIO symbols, those ROMIO symbols were pulled in even without -Wl,--whole-archive. 2. The problem only showed up with absoft and nag, both of which are Fortran-only compilers. If a C compiler has this issue, it should have shown up when Fortran support is disabled. Signed-off-by: Ken Raffenetti <firstname.lastname@example.org>