From 0db5f6cf1b2da3c69cbf2c7700c6301f40e1411a Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 25 May 2020 20:34:31 +0200 Subject: [PATCH] winegcc: Add support for -Wl,--whole-archive option. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- tools/winegcc/winegcc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index a1ba0340097..776d2b6473b 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -1188,6 +1188,8 @@ static void build(struct options* opts) add_library(opts, lib_dirs, files, file + 2 ); else if (file[1] == 'x') lang = file; + else if(file[1] == 'W') + strarray_add(files, file); } /* add the default libraries, if needed */ @@ -1393,6 +1395,9 @@ static void build(struct options* opts) } strarray_add(link_args, name); 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] ); 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; strarray_add(opts.linker_args, strmake("-Wl,%s",Wl->base[j])); }