The libMonoPosixHelper is installed together with Mono, hence its path
in the configuration should be relative to the Mono prefix.
It was previously assumed to reside in a system path, so the the
dynamic linker would find it anyway.
This patch is based on the one included in bug #18555 (by Gaƫtan
Lehmann <gaetan.lehmann@gmail.com>), but it also updates
runtime/Makefile.am to keep runtime/etc/mono/config consistent.
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=18555
<dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
<dllmap dll="oci" target="libclntsh@libsuffix@" os="!windows"/>
<dllmap dll="db2cli" target="libdb2_36@libsuffix@" os="!windows"/>
- <dllmap dll="MonoPosixHelper" target="libMonoPosixHelper@libsuffix@" os="!windows" />
+ <dllmap dll="MonoPosixHelper" target="@prefix@/lib/libMonoPosixHelper@libsuffix@" os="!windows" />
<dllmap dll="i:msvcrt" target="@LIBC@" os="!windows"/>
<dllmap dll="i:msvcrt.dll" target="@LIBC@" os="!windows"/>
<dllmap dll="sqlite" target="@SQLITE@" os="!windows"/>
# depend on $(symlinks) to ensure 'etc/mono' directory exists
etc/mono/config: ../data/config Makefile $(symlinks)
d=`cd ../support && pwd`; \
- sed 's,target="libMonoPosixHelper[^"]*",target="'$$d/libMonoPosixHelper.la'",' ../data/config > $@t
+ sed 's,target="$(prefix)/lib/libMonoPosixHelper$(libsuffix)",target="'$$d'/libMonoPosixHelper.la",' ../data/config > $@t
if test -z "$(libgdiplus_loc)"; then :; else \
sed 's,target="[^"]*libgdiplus[^"]*",target="$(libgdiplus_loc)",' $@t > $@tt; \
mv -f $@tt $@t; fi