Gijs and myself also tested and confirmed this resolves this long standing issue.
Fixes launching 32-bit EXEs from a WOW64 build dir.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52618
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
---
configure.ac | 2 +-
tools/winegcc/winegcc.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index ab3490b21cd..d408b1f344b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -773,7 +773,7 @@ case $host_os in
LIBS="$ac_save_LIBS"
fi
- UNIXLDFLAGS="-dynamiclib -install_name @loader_path/\$(UNIXLIB)"
+ UNIXLDFLAGS="-dynamiclib -install_name @rpath/\$(UNIXLIB) -Wl,-rpath,@loader_path\/"
AC_SUBST(LIBWINE_SHAREDLIB,"libwine.$libwine_version.dylib")
AC_SUBST(LIBWINE_LDFLAGS,["-dynamiclib -install_name @rpath/libwine.$libwine_soversion.dylib -Wl,-rpath,@loader_path/ -compatibility_version $libwine_soversion -current_version $libwine_version"])
AC_SUBST(WINELOADER_DEPENDS,"wine_info.plist")
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index bcec3916843..ab26adb07e8 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -416,7 +416,8 @@ static struct strarray get_link_args( struct options *opts, const char *output_n
if (opts->unix_lib)
{
strarray_add( &flags, "-install_name" );
- strarray_add( &flags, strmake( "@loader_path/%s.so", output_name ) );
+ strarray_add( &flags, strmake( "@rpath/%s.so", output_name ) );
+ strarray_add( &flags, "-Wl,-rpath,@loader_path/" );
}
strarray_addall( &link_args, flags );
return link_args;
--
2.32.0 (Apple Git-132)