On 18/10/2019 15.49, Kamil Rytarowski wrote: > On 18.10.2019 15:42, Stefano Garzarella wrote: >> On Fri, Oct 18, 2019 at 03:07:16PM +0200, Thomas Huth wrote: >>> The %m format specifier is an extension from glibc - and when compiling >>> QEMU for NetBSD, the compiler correctly complains, e.g.: >>> >>> /home/qemu/qemu-test.ELjfrQ/src/util/main-loop.c: In function >>> 'sigfd_handler': >>> /home/qemu/qemu-test.ELjfrQ/src/util/main-loop.c:64:13: warning: %m is only >>> allowed in syslog(3) like functions [-Wformat=] >>> printf("read from sigfd returned %zd: %m\n", len); >>> ^ >>> Let's use g_strerror() here instead, which is an easy-to-use wrapper >>> around the thread-safe strerror_r() function. >>> >>> While we're at it, also convert the "printf()" in main-loop.c into >>> the preferred "error_report()". >>> >>> Signed-off-by: Thomas Huth <th...@redhat.com> >>> --- >>> v2: Do not try to g_free() the strings >>> >>> hw/misc/tmp421.c | 4 ++-- >>> util/main-loop.c | 3 ++- >>> util/systemd.c | 4 ++-- >>> 3 files changed, 6 insertions(+), 5 deletions(-) >> >> There are many uses of %m also in hw/vfio/ but that's Linux stuff. >> Should we change those too or it doesn't matter since it never really >> compiled on NetBSD? > > It's a gnu (glibc) extension and linux can use alternative libc > implementations. Probably most of them capable to host qemu use %m.
I think I read somewhere that other libcs on Linux also support %m (like musl), but I just can't find that reference anymore. Anyway, we can still fix that later in case someone hits the issue. >> Anyway, this patch LGTM: >> Reviewed-by: Stefano Garzarella <sgarz...@redhat.com> Thanks, Thomas