Re: PowerPC: sleftests/powerpc fails to compile linux-next
From: Madhavan Srinivasan
Date: Fri Mar 07 2025 - 02:02:46 EST
On 3/6/25 10:30 PM, Venkat Rao Bagalkote wrote:
> Greetings!!
>
> I see selftests/powerpc fails to compile on next-20250306.
>
> This error has been introduced in next-20250218. Make is successful on next-20250217.
>
>
> Attached is the .config used.
>
>
> If you fix this, please add below tag.
>
> Reported-by: Venkat Rao Bagalkote <venkat88@xxxxxxxxxxxxx>
>
>
> Errors:
>
> make -C powerpc/
> make: Entering directory '/root/venkat/linux-next/tools/testing/selftests/powerpc'
> Makefile:60: warning: overriding recipe for target 'emit_tests'
> ../lib.mk:182: warning: ignoring old recipe for target 'emit_tests'
> BUILD_TARGET=/root/venkat/linux-next/tools/testing/selftests/powerpc/alignment; mkdir -p $BUILD_TARGET; make OUTPUT=$BUILD_TARGET -k -C alignment all
> make[1]: Nothing to be done for 'all'.
> BUILD_TARGET=/root/venkat/linux-next/tools/testing/selftests/powerpc/benchmarks; mkdir -p $BUILD_TARGET; make OUTPUT=$BUILD_TARGET -k -C benchmarks all
> make[1]: Nothing to be done for 'all'.
> BUILD_TARGET=/root/venkat/linux-next/tools/testing/selftests/powerpc/cache_shape; mkdir -p $BUILD_TARGET; make OUTPUT=$BUILD_TARGET -k -C cache_shape all
> make[1]: Nothing to be done for 'all'.
> BUILD_TARGET=/root/venkat/linux-next/tools/testing/selftests/powerpc/copyloops; mkdir -p $BUILD_TARGET; make OUTPUT=$BUILD_TARGET -k -C copyloops all
> make[1]: Nothing to be done for 'all'.
> BUILD_TARGET=/root/venkat/linux-next/tools/testing/selftests/powerpc/dexcr; mkdir -p $BUILD_TARGET; make OUTPUT=$BUILD_TARGET -k -C dexcr all
> make[1]: Nothing to be done for 'all'.
> BUILD_TARGET=/root/venkat/linux-next/tools/testing/selftests/powerpc/dscr; mkdir -p $BUILD_TARGET; make OUTPUT=$BUILD_TARGET -k -C dscr all
> make[1]: Nothing to be done for 'all'.
> BUILD_TARGET=/root/venkat/linux-next/tools/testing/selftests/powerpc/mm; mkdir -p $BUILD_TARGET; make OUTPUT=$BUILD_TARGET -k -C mm all
> CC pkey_exec_prot
> In file included from pkey_exec_prot.c:18:
> /root/venkat/linux-next/tools/testing/selftests/powerpc/include/pkeys.h: In function ‘pkeys_unsupported’:
> /root/venkat/linux-next/tools/testing/selftests/powerpc/include/pkeys.h:96:34: error: ‘PKEY_UNRESTRICTED’ undeclared (first use in this function)
> 96 | pkey = sys_pkey_alloc(0, PKEY_UNRESTRICTED);
> | ^~~~~~~~~~~~~~~~~
Commit 6d61527d931ba ('mm/pkey: Add PKEY_UNRESTRICTED macro') added a macro PKEY_UNRESTRICTED to handle implicit literal
value of 0x0 (which is "unrestricted"). belore patch add the same to powerpc/mm selftest.
Can you try with this patch to check whether it fixes the build break for you
diff --git a/tools/testing/selftests/powerpc/include/pkeys.h b/tools/testing/selftests/powerpc/include/pkeys.h
index c6d4063dd4f6..d6deb6ffa1b9 100644
--- a/tools/testing/selftests/powerpc/include/pkeys.h
+++ b/tools/testing/selftests/powerpc/include/pkeys.h
@@ -24,6 +24,9 @@
#undef PKEY_DISABLE_EXECUTE
#define PKEY_DISABLE_EXECUTE 0x4
+#undef PKEY_UNRESTRICTED
+#define PKEY_UNRESTRICTED 0x0
+
/* Older versions of libc do not define this */
#ifndef SEGV_PKUERR
#define SEGV_PKUERR 4
Maddy
> /root/venkat/linux-next/tools/testing/selftests/powerpc/include/pkeys.h:96:34: note: each undeclared identifier is reported only once for each function it appears in
> pkey_exec_prot.c: In function ‘segv_handler’:
> pkey_exec_prot.c:75:53: error: ‘PKEY_UNRESTRICTED’ undeclared (first use in this function)
> 75 | pkey_set_rights(fault_pkey, PKEY_UNRESTRICTED);
> | ^~~~~~~~~~~~~~~~~
> make[1]: *** [../../lib.mk:222: /root/venkat/linux-next/tools/testing/selftests/powerpc/mm/pkey_exec_prot] Error 1
> CC pkey_siginfo
> In file included from pkey_siginfo.c:22:
> /root/venkat/linux-next/tools/testing/selftests/powerpc/include/pkeys.h: In function ‘pkeys_unsupported’:
> /root/venkat/linux-next/tools/testing/selftests/powerpc/include/pkeys.h:96:34: error: ‘PKEY_UNRESTRICTED’ undeclared (first use in this function)
> 96 | pkey = sys_pkey_alloc(0, PKEY_UNRESTRICTED);
> | ^~~~~~~~~~~~~~~~~
> /root/venkat/linux-next/tools/testing/selftests/powerpc/include/pkeys.h:96:34: note: each undeclared identifier is reported only once for each function it appears in
> pkey_siginfo.c: In function ‘segv_handler’:
> pkey_siginfo.c:86:39: error: ‘PKEY_UNRESTRICTED’ undeclared (first use in this function)
> 86 | pkey_set_rights(pkey, PKEY_UNRESTRICTED);
> | ^~~~~~~~~~~~~~~~~
> make[1]: *** [../../lib.mk:222: /root/venkat/linux-next/tools/testing/selftests/powerpc/mm/pkey_siginfo] Error 1
> make[1]: Target 'all' not remade because of errors.
> make: *** [Makefile:40: mm] Error 2
> make: Leaving directory '/root/venkat/linux-next/tools/testing/selftests/powerpc'
>
>
> Regards,
>
> Venkat.