From: Rémi Bernon <rbernon(a)codeweavers.com> --- tools/winegcc/winegcc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 65460937c54..c3618f16c21 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -495,6 +495,7 @@ static struct strarray get_link_args( const char *output_name ) { struct strarray link_args = get_translator(); struct strarray flags = empty_strarray; + char *version; strarray_addall( &link_args, linker_args ); @@ -598,7 +599,9 @@ static struct strarray get_link_args( const char *output_name ) if (entry_point) strarray_add( &flags, strmake( "-Wl,-entry:%s", entry_point )); - strarray_add( &flags, strmake( "-Wl,--subsystem:%s", subsystem ) ); + if ((version = strchr( subsystem, ':' ))) subsystem = strmake( "%.*s,%s", (int)(version - subsystem), subsystem, version + 1 ); + strarray_add( &flags, "-Xlinker" ); + strarray_add( &flags, strmake( "-subsystem:%s", subsystem ) ); STRARRAY_FOR_EACH( file, &output_debug_files ) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9027