Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows ... strsignal in msys2/mingw64

From: Eli Zaretskii <[email-masked]>
Date: Sat, 19 Dec 2020 21:29:42 +0200

> From: Pal Gloss <[email-masked]>
> Date: Sat, 19 Dec 2020 20:08:07 +0100
> Sensitivity: Normal
> Cc: [email-masked]
> 
> strsignal is in libgccjit.dll.a but not in libgccjit-0.dll:
> $ for f in /mingw64/bin/libgccjit-0.dll /mingw64/lib/libgccjit.dll.a ; do (nm -A "$f" | grep strsignal) || echo "Not
> found in $f" ; done
> Not found in /mingw64/bin/libgccjit-0.dll

Did you try to use pexports to see if the DLL exports strsignal?

> C:/msys64/mingw64/lib/libgccjit.dll.a:d025724.o:0000000000000000 I __imp_strsignal
> C:/msys64/mingw64/lib/libgccjit.dll.a:d025724.o:0000000000000000 T strsignal

This probably means the configure-time test for strsignal should be
moved to before the test for libgccjit.

But in general, I'd suggest to file a bug report with MSYS2 folks:
the DLL and the import library shouldn't export strsignal.

> (gdb) rbreak strsignal
> Breakpoint 1 at 0x4000ce210: file ../../emacs/src/sysdep.c, line 2616.
> const char *safe_strsignal(int);
> Breakpoint 2 at 0x400209fc8
> <function, no debug info> strsignal;

And that latter function is in libgccjit DLL?