diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 426336e4536..0a72e6fbe49 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -492,6 +492,13 @@ 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( "@rpath/%s.so", output_name ) ); + strarray_add( flags, "-Wl,-headerpad_max_inatall_names" ); + strarray_add( flags, "-Wl,-rpath,@loader_path/" ); + } strarray_addall( link_args, flags ); return link_args;
On Fri, Aug 20, 2021 at 3:57 PM Dean Greer gcenx83@gmail.com wrote:
The only tweak I’d propose is adding -Wl,-headerpad_max_install_names
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 426336e4536..0a72e6fbe49 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -492,6 +492,13 @@ 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( "@rpath/%s.so", output_name ) );
strarray_add( flags, "-Wl,-headerpad_max_install_names" );
strarray_add( flags, "-Wl,-rpath,@loader_path/" );
} strarray_addall( link_args, flags ); return link_args;
On Fri, Aug 20, 2021 at 3:36 PM Huw Davies huw@codeweavers.com wrote:
On Fri, Aug 20, 2021 at 11:45:24AM -0400, Dean Greer wrote:
That’s strange as this should work maybe only dylibs do this
correctly.. this
is Apple.
Could you instead implement adding this in the manner I explain above
instead
so I can be used in a more general way?, aka UNIX_LDFLAGS that by
default add
this needed -rpath,@loader_path/ but also allows adding additional
flags as
needed.
I'm not sure what your issue is with using LDFLAGS - they do only affect unix libraries. There shouldn't be an issue with passing an rpath in that.
Huw.