The flag does nothing if -nodefaultlibs or -nostdlib be given, because the driver does not automatically link to libgcc/compiler-rt in that case. Clang will warn about this, which is annoying, which clutters up the output, and which makes it impossible to use -Werror when building with Clang.
Signed-off-by: Chip Davis cdavis@codeweavers.com ---
Notes: v2: Make sure we do add the flag for -print-libgcc-file-name.
tools/winegcc/winegcc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 026bfe35de3..90b598667c0 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -508,7 +508,7 @@ static strarray *get_link_args( struct options *opts, const char *output_name ) strarray_add( flags, "-Wl,--large-address-aware" );
/* make sure we don't need a libgcc_s dll on Windows */ - strarray_add( flags, "-static-libgcc" ); + if (!opts->nodefaultlibs && !opts->use_msvcrt) strarray_add( flags, "-static-libgcc" );
strarray_addall( link_args, flags ); return link_args; @@ -977,6 +977,8 @@ static const char *find_libgcc(const strarray *prefix, const strarray *link_tool int ret;
strarray_add( link, "-print-libgcc-file-name" ); + /* make sure we don't need a libgcc_s dll on Windows */ + strarray_add( link, "-static-libgcc" );
sout = dup( fileno(stdout) ); freopen( out, "w", stdout );