Commit 9af226c8 authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

winegcc: Add a @loader_path to help the macOS loader find ntdll.so.

On macOS unixlibs that link to ntdll.so currently fail to load. It appears the macOS loader needs to be able to locate the file even if the library is already loaded. This patch changes the LC_ID_DYLIB name of ntdll.so to "@loader_path/ntdll.so" so that when other unixlibs link against this they will insert that name into their LC_LOAD_DYLIB entry for ntdll.so. While changing only ntdll.so is necessary, for simplicity this patch changes all unixlibs. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51632Signed-off-by: 's avatarHuw Davies <huw@codeweavers.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent 05fe57f5
......@@ -492,6 +492,11 @@ static strarray *get_link_args( struct options *opts, const char *output_name )
strarray_add( flags, opts->image_base );
}
if (opts->strip) strarray_add( flags, "-Wl,-x" );
if (opts->unix_lib)
{
strarray_add( flags, "-install_name" );
strarray_add( flags, strmake( "@loader_path/%s.so", output_name ) );
}
strarray_addall( link_args, flags );
return link_args;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment