When building with:
CONFIG_64BIT=y
CONFIG_MIPS32_COMPAT=y
CONFIG_COMPAT=y
CONFIG_MIPS32_O32=y
CONFIG_MIPS32_N32=y
CONFIG_SYSVIPC is not set
(and implicitly: CONFIG_SYSVIPC_COMPAT is not set)
the final link fails with unresolved symbols for:
compat_sys_semctl, compat_sys_msgsnd, compat_sys_msgrcv,
compat_sys_shmctl, compat_sys_msgctl, compat_sys_semtimedop
The fix is to add cond_syscall declarations for all syscalls in
ipc/compat.c
Signed-off-by: Kevin Cernekee <[email protected]>
---
kernel/sys_ni.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
index 25cc41c..1140c12 100644
--- a/kernel/sys_ni.c
+++ b/kernel/sys_ni.c
@@ -69,15 +69,22 @@ cond_syscall(compat_sys_epoll_pwait);
cond_syscall(sys_semget);
cond_syscall(sys_semop);
cond_syscall(sys_semtimedop);
+cond_syscall(compat_sys_semtimedop);
cond_syscall(sys_semctl);
+cond_syscall(compat_sys_semctl);
cond_syscall(sys_msgget);
cond_syscall(sys_msgsnd);
+cond_syscall(compat_sys_msgsnd);
cond_syscall(sys_msgrcv);
+cond_syscall(compat_sys_msgrcv);
cond_syscall(sys_msgctl);
+cond_syscall(compat_sys_msgctl);
cond_syscall(sys_shmget);
cond_syscall(sys_shmat);
+cond_syscall(compat_sys_shmat);
cond_syscall(sys_shmdt);
cond_syscall(sys_shmctl);
+cond_syscall(compat_sys_shmctl);
cond_syscall(sys_mq_open);
cond_syscall(sys_mq_unlink);
cond_syscall(sys_mq_timedsend);
--
1.7.5
On Fri, May 13, 2011 at 05:07:28PM -0700, Kevin Cernekee wrote:
> Date: Fri, 13 May 2011 17:07:28 -0700
> From: Kevin Cernekee <[email protected]>
> To: Andrew Morton <[email protected]>, Al Viro
> <[email protected]>, Stephen Rothwell <[email protected]>
> Cc: [email protected], [email protected]
> Subject: [PATCH] ipc: Add missing sys_ni entries for ipc/compat.c functions
> Content-Type: text/plain; charset=us-ascii
>
> When building with:
>
> CONFIG_64BIT=y
> CONFIG_MIPS32_COMPAT=y
> CONFIG_COMPAT=y
> CONFIG_MIPS32_O32=y
> CONFIG_MIPS32_N32=y
> CONFIG_SYSVIPC is not set
> (and implicitly: CONFIG_SYSVIPC_COMPAT is not set)
>
> the final link fails with unresolved symbols for:
>
> compat_sys_semctl, compat_sys_msgsnd, compat_sys_msgrcv,
> compat_sys_shmctl, compat_sys_msgctl, compat_sys_semtimedop
>
> The fix is to add cond_syscall declarations for all syscalls in
> ipc/compat.c
>
> Signed-off-by: Kevin Cernekee <[email protected]>
Acked-by: Ralf Baechle <[email protected]>
Thanks, Kevin!
Ralf