Re: 2.6.21-rc5-mm2 - compile error on x86-64

From: Andrew Morton
Date: Thu Mar 29 2007 - 17:28:37 EST


On Thu, 29 Mar 2007 20:20:20 +0200
Helge Hafting <helgehaf@xxxxxxxxxxxxx> wrote:

> I tried compiling this on x86-64, and got this compile error:
> CC init/version.o
> CC init/missing_syscalls.o
> In file included from init/missing_syscalls.c:97:
> init/missing_syscalls.h:279:2: warning: #warning syscall ssetmask not
> implemented
> init/missing_syscalls.h:1263:2: warning: #warning syscall getcpu not
> implemented
> init/missing_syscalls.h:1267:2: warning: #warning syscall epoll_pwait not
> implemented
> init/missing_syscalls.h:1271:2: warning: #warning syscall lutimesat not
> implemented
> init/missing_syscalls.h:1275:2: warning: #warning syscall revokeat not
> implemented
> init/missing_syscalls.h:1279:2: warning: #warning syscall frevoke not
> implemented

yup, people will presumably work on fixing these things up after the
feature hits mainline.

> LD init/built-in.o
> LD .tmp_vmlinux1
> fs/built-in.o: In function `proc_root_init':
> /usr/src/linux/fs/proc/root.c:83: undefined reference to `proc_sys_init'

Ah. I assume you have CONFIG_SYSCTL=y, CONFIG_PROC_SYSCTL=n?




From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>

We're using #ifdef CONFIG_SYSCTL, but we should be using CONFIG_PROC_SYSCTL,
so we get

fs/built-in.o: In function `proc_root_init':
/usr/src/linux/fs/proc/root.c:83: undefined reference to `proc_sys_init'

Fix that up and remove an ifdef-in-C.

Cc: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
Cc: Helge Hafting <helgehaf@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

fs/proc/internal.h | 4 ++++
fs/proc/root.c | 2 --
2 files changed, 4 insertions(+), 2 deletions(-)

diff -puN fs/proc/root.c~proc-fix-linkage-with-config_sysctl=y-config_proc_sysctl=n fs/proc/root.c
--- a/fs/proc/root.c~proc-fix-linkage-with-config_sysctl=y-config_proc_sysctl=n
+++ a/fs/proc/root.c
@@ -79,9 +79,7 @@ void __init proc_root_init(void)
proc_device_tree_init();
#endif
proc_bus = proc_mkdir("bus", NULL);
-#ifdef CONFIG_SYSCTL
proc_sys_init();
-#endif
}

static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat
diff -puN fs/proc/internal.h~proc-fix-linkage-with-config_sysctl=y-config_proc_sysctl=n fs/proc/internal.h
--- a/fs/proc/internal.h~proc-fix-linkage-with-config_sysctl=y-config_proc_sysctl=n
+++ a/fs/proc/internal.h
@@ -11,7 +11,11 @@

#include <linux/proc_fs.h>

+#ifdef CONFIG_PROC_SYSCTL
extern int proc_sys_init(void);
+#else
+static inline void proc_sys_init(void) { }
+#endif

struct vmalloc_info {
unsigned long used;
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/