Re: Build failures in -next: sys_pkey_mprotect etc. undefined

From: Dave Hansen
Date: Mon Sep 12 2016 - 16:09:26 EST


On 09/12/2016 07:55 AM, Guenter Roeck wrote:
> Building h8300:allnoconfig ... failed
> Building h8300:h8300h-sim_defconfig ... failed
> Building c6x:dsk6455_defconfig ... failed
>
> [ and more builds for the same architectures ]
>
> --------------
> Error log:
> arch/h8300/kernel/built-in.o:(.data+0x480): undefined reference to
> `sys_pkey_mprotect'
> arch/h8300/kernel/built-in.o:(.data+0x484): undefined reference to
> `sys_pkey_alloc'
> arch/h8300/kernel/built-in.o:(.data+0x488): undefined reference to
> `sys_pkey_free'

So, I've done what Arnd suggested, but I don't have a working
cross-compiler than can do h8300 or c6x. Could you test the attached
patch and see if it gets things working for you?

Also, do you have a handy place to grab a cross-compiler for h8300
without having to build one? The kernel.org ones don't seem to work for
h8300.


Guenter Roeck reported breakage on the h8300 and c6x architectures
(among others) caused by the new memory protection keys syscalls.
This patch does what Arnd suggested and adds them to
kernel/sys_ni.c.

I don't have a cross-compiler for either of these architectures
handy, and kernel.org doesn't provide one either, so I have not
built this patch. Testing would be appreciated.

Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: "open list:ABI/API" <linux-api@xxxxxxxxxxxxxxx>
Cc: linux-arch@xxxxxxxxxxxxxxx

---

b/kernel/sys_ni.c | 5 +++++
1 file changed, 5 insertions(+)

diff -puN kernel/sys_ni.c~fix-pkeys-arch-breakage kernel/sys_ni.c
--- a/kernel/sys_ni.c~fix-pkeys-arch-breakage 2016-09-12 12:50:47.801607239 -0700
+++ b/kernel/sys_ni.c 2016-09-12 12:50:47.804607374 -0700
@@ -250,3 +250,8 @@ cond_syscall(sys_execveat);

/* membarrier */
cond_syscall(sys_membarrier);
+
+/* memory protection keys */
+cond_syscall(sys_pkey_mprotect);
+cond_syscall(sys_pkey_alloc);
+cond_syscall(sys_pkey_free);
_