The newly added sysdeps/unix/sysv/linux/prctl.c passes variadic arguments to INLINE_SYSCALL_CALL. But it doesn't work on PPC: ../sysdeps/unix/sysv/linux/prctl.c: In function ‘__prctl’: ../sysdeps/unix/sysv/linux/prctl.c:36:21: error: unused variable ‘arg5’ [-Werror=unused-variable] 36 | unsigned long int arg5 = va_arg (arg, unsigned long int); | ^~~~ ../sysdeps/unix/sysv/linux/prctl.c:35:21: error: unused variable ‘arg4’ [-Werror=unused-variable] 35 | unsigned long int arg4 = va_arg (arg, unsigned long int); | ^~~~ ../sysdeps/unix/sysv/linux/prctl.c:34:21: error: unused variable ‘arg3’ [-Werror=unused-variable] 34 | unsigned long int arg3 = va_arg (arg, unsigned long int); | ^~~~ ../sysdeps/unix/sysv/linux/prctl.c:33:21: error: unused variable ‘arg2’ [-Werror=unused-variable] 33 | unsigned long int arg2 = va_arg (arg, unsigned long int); | ^~~~
#define LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5) \ long int arg5 = (long int) (__arg5); \ LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4); \ extern void __illegally_sized_syscall_arg5 (void); \ if (__builtin_classify_type (__arg5) != 5 \ && sizeof (__arg5) > SYSCALL_ARG_SIZE) \ __illegally_sized_syscall_arg5 (); \ r7 = arg5 uses arg5. But it is also function argument.
Created attachment 12497 [details] A patch
Fixed for 2.32 and 2.30/2.31 branches.