prefix and exec_prefix are not set in cray-xpmem.pc; this leaves these variables empty when processed by pkgconf/pkg-config, resulting in erroneous includedir and libdir variables. In my case, a spurious -L/lib got into my link line for Open MPI, causing my linker to attempt to link to 32-bit versions of libm, libc, etc. into a 64-bit build. Needless to say, that did not go well.
This occurs because Autoconf variables are not expanded recursively during substitution. Simply adding the following to the top of cray-xpmem.pc.in should be sufficient to fix this.
prefix=@prefix@
exec_prefix=@exec_prefix@
I believe that module.in has a similar issue.
prefixandexec_prefixare not set incray-xpmem.pc; this leaves these variables empty when processed bypkgconf/pkg-config, resulting in erroneousincludedirandlibdirvariables. In my case, a spurious-L/libgot into my link line for Open MPI, causing my linker to attempt to link to 32-bit versions of libm, libc, etc. into a 64-bit build. Needless to say, that did not go well.This occurs because Autoconf variables are not expanded recursively during substitution. Simply adding the following to the top of
cray-xpmem.pc.inshould be sufficient to fix this.I believe that
module.inhas a similar issue.