winegcc: Add support for -Wl,--whole-archive option.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2020-05-25 20:34:31 +02:00 committed by Alexandre Julliard
parent c5ee64a101
commit 0db5f6cf1b
1 changed files with 10 additions and 0 deletions

View File

@ -1188,6 +1188,8 @@ static void build(struct options* opts)
add_library(opts, lib_dirs, files, file + 2 ); add_library(opts, lib_dirs, files, file + 2 );
else if (file[1] == 'x') else if (file[1] == 'x')
lang = file; lang = file;
else if(file[1] == 'W')
strarray_add(files, file);
} }
/* add the default libraries, if needed */ /* add the default libraries, if needed */
@ -1393,6 +1395,9 @@ static void build(struct options* opts)
} }
strarray_add(link_args, name); strarray_add(link_args, name);
break; break;
case 'W':
strarray_add(link_args, files->base[j]);
break;
} }
} }
@ -1932,6 +1937,11 @@ int main(int argc, char **argv)
opts.debug_file = strdup( Wl->base[++j] ); opts.debug_file = strdup( Wl->base[++j] );
continue; continue;
} }
if (!strcmp(Wl->base[j], "--whole-archive") || !strcmp(Wl->base[j], "--no-whole-archive"))
{
strarray_add( opts.files, strmake( "-Wl,%s", Wl->base[j] ));
continue;
}
if (!strcmp(Wl->base[j], "-static")) linking = -1; if (!strcmp(Wl->base[j], "-static")) linking = -1;
strarray_add(opts.linker_args, strmake("-Wl,%s",Wl->base[j])); strarray_add(opts.linker_args, strmake("-Wl,%s",Wl->base[j]));
} }