Package: wine
Version: 9.0~repack-2
Severity: serious

The source package fail to build on armel and armhf with the following error.

programs/winedbg/info.c:356:27: error: unknown conversion type character ‘I’ in 
format [-Werror=format=]
  356 |         dbg_printf("'0x%0*I64lld' is not a valid module address\n", 
ADDRWIDTH, base);
      |                           ^
programs/winedbg/info.c:356:20: error: too many arguments for format 
[-Werror=format-extra-args]
  356 |         dbg_printf("'0x%0*I64lld' is not a valid module address\n", 
ADDRWIDTH, base);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The build failures are available from
<URL: https://buildd.debian.org/status/package.php?p=wine >.

The issue seem to have been introduced in an upstream commit 2021-10-12:

commit 3a869c1f9ba8a35eb0781fc5cb0b6684a9a7960b
Author: Eric Pouech <eric.pou...@gmail.com>
Date:   Tue Oct 12 18:10:58 2021 +0200

    winedbg: Simplify some printing of addresses.
    
    Signed-off-by: Eric Pouech <eric.pou...@gmail.com>
    Signed-off-by: Alexandre Julliard <julli...@winehq.org>

diff --git a/programs/winedbg/info.c b/programs/winedbg/info.c
index dc0e6591f1f..477438d83e3 100644
--- a/programs/winedbg/info.c
+++ b/programs/winedbg/info.c
@@ -284,7 +284,7 @@ void info_win32_module(DWORD64 base)
     HeapFree(GetProcessHeap(), 0, im.modules);
 
     if (base && !num_printed)
-        dbg_printf("'0x%x%08x' is not a valid module address\n", (DWORD)(base 
>> 32), (DWORD)b
ase);
+        dbg_printf("'0x%0*I64x' is not a valid module address\n", ADDRWIDTH, 
base);
 }
 
 struct class_walker



I do not understand the printf() notation well enough to understand what
is wrong.  According to printf(3) in glibc 2.36, the I flag was added in
glibc 2.2.  Could it be a compiler error, that the compiler do not
understand this "new" flag?

-- 
Happy hacking
Petter Reinholdtsen

Reply via email to