[PATCH v2] winegcc: Only add -static-libgcc if -nodefaultlibs weren't given.

Chip Davis cdavis at codeweavers.com
Mon Apr 6 12:44:39 CDT 2020


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 at 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 );
-- 
2.24.0




More information about the wine-devel mailing list