Re: [PATCH] tests/tcg: Do not use inttypes.h in multiarch/system/memory.c
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
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
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
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