Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/powerpc: Fix 32-bit BE build errors on Ubuntu 24.04

Starting with Ubuntu 24.04, building the selftests with the big endian
compiler (which defaults to 32-bit) fails with errors:

stack_expansion_ldst.c:178:37: error: format '%lx' expects argument
of type 'long unsigned int', but argument 2 has type 'rlim_t' {aka 'long long unsigned int'}
subpage_prot.c:214:38: error: format '%lx' expects argument of type
'long unsigned int', but argument 3 has type 'off_t' {aka 'long long int'}

Prior to 24.04 rlim_t was long unsigned int, and off_t was long int.

Cast to unsigned long long and long long before passing to printf to
avoid the errors.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20241106130453.1741013-3-mpe@ellerman.id.au

+3 -3
+1 -1
tools/testing/selftests/powerpc/mm/stack_expansion_ldst.c
··· 175 175 176 176 page_size = getpagesize(); 177 177 getrlimit(RLIMIT_STACK, &rlimit); 178 - printf("Stack rlimit is 0x%lx\n", rlimit.rlim_cur); 178 + printf("Stack rlimit is 0x%llx\n", (unsigned long long)rlimit.rlim_cur); 179 179 180 180 printf("Testing loads ...\n"); 181 181 test_one_type(LOAD, page_size, rlimit.rlim_cur);
+2 -2
tools/testing/selftests/powerpc/mm/subpage_prot.c
··· 211 211 perror("failed to map file"); 212 212 return 1; 213 213 } 214 - printf("allocated %s for 0x%lx bytes at %p\n", 215 - file_name, filesize, fileblock); 214 + printf("allocated %s for 0x%llx bytes at %p\n", 215 + file_name, (long long)filesize, fileblock); 216 216 217 217 printf("testing file map...\n"); 218 218