Re: [PATCH] tests/tcg: Do not use inttypes.h in multiarch/system/memory.c

2024-11-04 Thread Richard Henderson

On 10/29/24 23:29, Ilya Leoshkevich wrote:

On Thu, 2024-10-10 at 11:20 +0200, Paolo Bonzini wrote:

On 10/10/24 10:58, Ilya Leoshkevich wrote:

make check-tcg fails on Fedora with the following error message:

  alpha-linux-gnu-gcc [...]
qemu/tests/tcg/multiarch/system/memory.c -o memory [...]
  qemu/tests/tcg/multiarch/system/memory.c:17:10: fatal error:
inttypes.h: No such file or directory
     17 | #include 
    |  ^~~~
  compilation terminated.

The reason is that Fedora has cross-compilers, but no cross-glibc
headers. Fix by hardcoding the format specifiers and dropping the
include.

An alternative fix would be to introduce a configure check for
inttypes.h. But this would make it impossible to use Fedora
cross-compilers for softmmu tests, which used to work so far.

Fixes: ecbcc9ead2f8 ("tests/tcg: add a system test to check memory
instrumentation")
Signed-off-by: Ilya Leoshkevich 


Reviewed-by: Paolo Bonzini 


[...]

Thanks for the review!

Could someone please pick this one and also [1] up?
Both patches are aimed at improving the situation with the test builds.

[1]
https://lore.kernel.org/qemu-devel/20241023131250.48510-1-...@linux.ibm.com/


Queued, thanks.

r~



Re: [PATCH] tests/tcg: Do not use inttypes.h in multiarch/system/memory.c

2024-10-29 Thread Ilya Leoshkevich
On Thu, 2024-10-10 at 11:20 +0200, Paolo Bonzini wrote:
> On 10/10/24 10:58, Ilya Leoshkevich wrote:
> > make check-tcg fails on Fedora with the following error message:
> > 
> >  alpha-linux-gnu-gcc [...]
> > qemu/tests/tcg/multiarch/system/memory.c -o memory [...]
> >  qemu/tests/tcg/multiarch/system/memory.c:17:10: fatal error:
> > inttypes.h: No such file or directory
> >     17 | #include 
> >    |  ^~~~
> >  compilation terminated.
> > 
> > The reason is that Fedora has cross-compilers, but no cross-glibc
> > headers. Fix by hardcoding the format specifiers and dropping the
> > include.
> > 
> > An alternative fix would be to introduce a configure check for
> > inttypes.h. But this would make it impossible to use Fedora
> > cross-compilers for softmmu tests, which used to work so far.
> > 
> > Fixes: ecbcc9ead2f8 ("tests/tcg: add a system test to check memory
> > instrumentation")
> > Signed-off-by: Ilya Leoshkevich 
> 
> Reviewed-by: Paolo Bonzini 

[...]

Thanks for the review!

Could someone please pick this one and also [1] up?
Both patches are aimed at improving the situation with the test builds.

[1]
https://lore.kernel.org/qemu-devel/20241023131250.48510-1-...@linux.ibm.com/



Re: [PATCH] tests/tcg: Do not use inttypes.h in multiarch/system/memory.c

2024-10-10 Thread Paolo Bonzini

On 10/10/24 10:58, Ilya Leoshkevich wrote:

make check-tcg fails on Fedora with the following error message:

 alpha-linux-gnu-gcc [...] qemu/tests/tcg/multiarch/system/memory.c -o 
memory [...]
 qemu/tests/tcg/multiarch/system/memory.c:17:10: fatal error: inttypes.h: 
No such file or directory
17 | #include 
   |  ^~~~
 compilation terminated.

The reason is that Fedora has cross-compilers, but no cross-glibc
headers. Fix by hardcoding the format specifiers and dropping the
include.

An alternative fix would be to introduce a configure check for
inttypes.h. But this would make it impossible to use Fedora
cross-compilers for softmmu tests, which used to work so far.

Fixes: ecbcc9ead2f8 ("tests/tcg: add a system test to check memory 
instrumentation")
Signed-off-by: Ilya Leoshkevich 


Reviewed-by: Paolo Bonzini 


---
  tests/tcg/multiarch/system/memory.c | 9 -
  1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tests/tcg/multiarch/system/memory.c 
b/tests/tcg/multiarch/system/memory.c
index 65a6038a241..7508f6b916d 100644
--- a/tests/tcg/multiarch/system/memory.c
+++ b/tests/tcg/multiarch/system/memory.c
@@ -14,7 +14,6 @@
  
  #include 

  #include 
-#include 
  #include 
  
  #ifndef CHECK_UNALIGNED

@@ -511,8 +510,8 @@ int main(void)
  int i;
  bool ok = true;
  
-ml_printf("Test data start: 0x%"PRIxPTR"\n", &test_data[0]);

-ml_printf("Test data end: 0x%"PRIxPTR"\n", &test_data[TEST_SIZE]);
+ml_printf("Test data start: 0x%lx\n", (unsigned long)&test_data[0]);
+ml_printf("Test data end: 0x%lx\n", (unsigned long)&test_data[TEST_SIZE]);
  
  /* Run through the unsigned tests first */

  for (i = 0; i < ARRAY_SIZE(init_ufns) && ok; i++) {
@@ -529,8 +528,8 @@ int main(void)
  ok = do_signed_reads(true);
  }
  
-ml_printf("Test data read: %"PRId32"\n", test_read_count);

-ml_printf("Test data write: %"PRId32"\n", test_write_count);
+ml_printf("Test data read: %lu\n", (unsigned long)test_read_count);
+ml_printf("Test data write: %lu\n", (unsigned long)test_write_count);
  ml_printf("Test complete: %s\n", ok ? "PASSED" : "FAILED");
  return ok ? 0 : -1;
  }





[PATCH] tests/tcg: Do not use inttypes.h in multiarch/system/memory.c

2024-10-10 Thread Ilya Leoshkevich
make check-tcg fails on Fedora with the following error message:

alpha-linux-gnu-gcc [...] qemu/tests/tcg/multiarch/system/memory.c -o 
memory [...]
qemu/tests/tcg/multiarch/system/memory.c:17:10: fatal error: inttypes.h: No 
such file or directory
   17 | #include 
  |  ^~~~
compilation terminated.

The reason is that Fedora has cross-compilers, but no cross-glibc
headers. Fix by hardcoding the format specifiers and dropping the
include.

An alternative fix would be to introduce a configure check for
inttypes.h. But this would make it impossible to use Fedora
cross-compilers for softmmu tests, which used to work so far.

Fixes: ecbcc9ead2f8 ("tests/tcg: add a system test to check memory 
instrumentation")
Signed-off-by: Ilya Leoshkevich 
---
 tests/tcg/multiarch/system/memory.c | 9 -
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tests/tcg/multiarch/system/memory.c 
b/tests/tcg/multiarch/system/memory.c
index 65a6038a241..7508f6b916d 100644
--- a/tests/tcg/multiarch/system/memory.c
+++ b/tests/tcg/multiarch/system/memory.c
@@ -14,7 +14,6 @@
 
 #include 
 #include 
-#include 
 #include 
 
 #ifndef CHECK_UNALIGNED
@@ -511,8 +510,8 @@ int main(void)
 int i;
 bool ok = true;
 
-ml_printf("Test data start: 0x%"PRIxPTR"\n", &test_data[0]);
-ml_printf("Test data end: 0x%"PRIxPTR"\n", &test_data[TEST_SIZE]);
+ml_printf("Test data start: 0x%lx\n", (unsigned long)&test_data[0]);
+ml_printf("Test data end: 0x%lx\n", (unsigned long)&test_data[TEST_SIZE]);
 
 /* Run through the unsigned tests first */
 for (i = 0; i < ARRAY_SIZE(init_ufns) && ok; i++) {
@@ -529,8 +528,8 @@ int main(void)
 ok = do_signed_reads(true);
 }
 
-ml_printf("Test data read: %"PRId32"\n", test_read_count);
-ml_printf("Test data write: %"PRId32"\n", test_write_count);
+ml_printf("Test data read: %lu\n", (unsigned long)test_read_count);
+ml_printf("Test data write: %lu\n", (unsigned long)test_write_count);
 ml_printf("Test complete: %s\n", ok ? "PASSED" : "FAILED");
 return ok ? 0 : -1;
 }
-- 
2.46.2