Subject: Re: [RFC PATCH v3 00/10] an introduction of library operating system for Linux (LibOS)

From: Richard Weinberger <[email-masked]>
Date: Fri, 24 Apr 2015 09:40:32 +0200

Hi!

Am 19.04.2015 um 15:28 schrieb Hajime Tazaki:
> changes from v2:
> - Patch 02/11 ("slab: add private memory allocator header for arch/lib")
> * add new allocator named SLIB (Library Allocator): Patch 04/11 is integrated
>   to 02 (commented by Christoph Lameter)
> - Overall
> * rewrite commit log messages
> 
> changes from v1:
> - Patch 01/11 ("sysctl: make some functions unstatic to access by arch/lib"):
> * add prefix ctl_table_ to newly publiced functions (commented by Joe Perches)
> - Patch 08/11 ("lib: other kernel glue layer code"):
> * significantly reduce glue codes (stubs) (commented by Richard Weinberger)
> - Others
> * adapt to linux-4.0.0
> * detect make dependency by Kbuild .cmd files

I still fail to build it. :-(

for-asm-upstream-v3 on top of Linus' tree gives:

rw@sandpuppy:~/linux (libos $)> make library ARCH=lib
  OBJS-MK   arch/lib/objs.mk
arch/lib/Makefile.print:41: target 'lzo/' given more than once in the same rule.
make[2]: Nothing to be done for '.config'.
scripts/kconfig/conf  --silentoldconfig arch/lib/Kconfig
  CHK     include/config/kernel.release
  CHK     include/generated/utsrelease.h
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/compile.h
  GEN     arch/lib/timeconst.h
  GEN     arch/lib/linker.lds
  CC      arch/lib/lib.o
  CC      arch/lib/lib-device.o
  CC      arch/lib/lib-socket.o
  CC      arch/lib/random.o
  CC      arch/lib/softirq.o
  CC      arch/lib/time.o
  CC      arch/lib/timer.o
  CC      arch/lib/hrtimer.o
  CC      arch/lib/sched.o
  CC      arch/lib/workqueue.o
  CC      arch/lib/print.o
  CC      arch/lib/tasklet.o
  CC      arch/lib/tasklet-hrtimer.o
  CC      arch/lib/glue.o
  CC      arch/lib/fs.o
  CC      arch/lib/sysctl.o
  CC      arch/lib/proc.o
  CC      arch/lib/sysfs.o
  CC      arch/lib/capability.o
arch/lib/capability.c:16:6: error: redefinition of ‘capable’
 bool capable(int cap)
      ^
In file included from arch/lib/capability.c:9:0:
./include/linux/capability.h:236:20: note: previous definition of ‘capable’ was here
 static inline bool capable(int cap)
                    ^
arch/lib/capability.c:39:6: error: redefinition of ‘ns_capable’
 bool ns_capable(struct user_namespace *ns, int cap)
      ^
In file included from arch/lib/capability.c:9:0:
./include/linux/capability.h:240:20: note: previous definition of ‘ns_capable’ was here
 static inline bool ns_capable(struct user_namespace *ns, int cap)
                    ^
arch/lib/Makefile:210: recipe for target 'arch/lib/capability.o' failed
make: *** [arch/lib/capability.o] Error 1

And on top of v4.0 it fails too:

rw@sandpuppy:~/linux (libos-v4.0 $)> make library ARCH=lib
  OBJS-MK   arch/lib/objs.mk
arch/lib/Makefile.print:41: target 'lzo/' given more than once in the same rule.
make[2]: Nothing to be done for '.config'.
scripts/kconfig/conf --silentoldconfig arch/lib/Kconfig
  CHK     include/config/kernel.release
  CHK     include/generated/utsrelease.h
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/compile.h
  GEN     arch/lib/timeconst.h
  GEN     arch/lib/linker.lds
  CC      arch/lib/lib.o
  CC      arch/lib/lib-device.o
  CC      arch/lib/lib-socket.o
arch/lib/lib-socket.c: In function ‘lib_sock_sendmsg’:
arch/lib/lib-socket.c:114:2: error: too few arguments to function ‘sock_sendmsg’
  retval = sock_sendmsg(kernel_socket, &msg_sys);
  ^
In file included from arch/lib/lib-socket.c:12:0:
./include/linux/net.h:216:5: note: declared here
 int sock_sendmsg(struct socket *sock, struct msghdr *msg, size_t len);
     ^
arch/lib/Makefile:210: recipe for target 'arch/lib/lib-socket.o' failed
make: *** [arch/lib/lib-socket.o] Error 1

You *really* need to shape up wrt the build process.

Thanks,
//richard