From ffad94e6ddde09c8388bdc0b5f825ddf77702182 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 28 Dec 2016 18:29:01 +0100 Subject: [PATCH] uclibc: add kernel module syscall wrappers Revert the decision to remove the wrappers, but remove the extra Config symbol and add it by default. Required for kmod package. Signed-off-by: Waldemar Brodkorb Signed-off-by: Peter Korsgaard --- ...odule-delete_module-syscall-wrappers.patch | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 package/uclibc/0001-add-init_module-delete_module-syscall-wrappers.patch diff --git a/package/uclibc/0001-add-init_module-delete_module-syscall-wrappers.patch b/package/uclibc/0001-add-init_module-delete_module-syscall-wrappers.patch new file mode 100644 index 0000000000..4a3e07fb5d --- /dev/null +++ b/package/uclibc/0001-add-init_module-delete_module-syscall-wrappers.patch @@ -0,0 +1,59 @@ +From f60f9d6f1f73ab3f77771dafa4f90c2e0de2a7e2 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Tue, 27 Dec 2016 09:24:24 +0100 +Subject: [PATCH] add init_module/delete_module syscall wrappers + +Add the wrappers unconditionally, because kmod package +still uses them. + +Signed-off-by: Waldemar Brodkorb +--- + libc/sysdeps/linux/common/Makefile.in | 1 + + libc/sysdeps/linux/common/module.c | 23 +++++++++++++++++++++++ + 2 files changed, 24 insertions(+) + create mode 100644 libc/sysdeps/linux/common/module.c + +diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in +index 595074c..faed6fd 100644 +--- a/libc/sysdeps/linux/common/Makefile.in ++++ b/libc/sysdeps/linux/common/Makefile.in +@@ -31,6 +31,7 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \ + ioperm.c \ + iopl.c \ + modify_ldt.c \ ++ module.c \ + personality.c \ + pipe2.c \ + ppoll.c \ +diff --git a/libc/sysdeps/linux/common/module.c b/libc/sysdeps/linux/common/module.c +new file mode 100644 +index 0000000..146a43e +--- /dev/null ++++ b/libc/sysdeps/linux/common/module.c +@@ -0,0 +1,23 @@ ++/* ++ * init_module()/delete_module() for uClibc ++ * ++ * Copyright (C) 2000-2006 Erik Andersen ++ * ++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. ++ */ ++ ++#include ++ ++#ifdef __NR_init_module ++int init_module(void *first, void *second, void *third, void *fourth, void *fifth); ++/* This may have 5 arguments (for old 2.0 kernels) or 2 arguments ++ * (for 2.2 and 2.4 kernels). Use the greatest common denominator, ++ * and let the kernel cope with whatever it gets. It's good at that. */ ++_syscall5(int, init_module, void *, first, void *, second, void *, third, ++ void *, fourth, void *, fifth) ++#endif ++ ++#ifdef __NR_delete_module ++int delete_module(const char *name, unsigned int flags); ++_syscall2(int, delete_module, const char *, name, unsigned int, flags) ++#endif +-- +2.1.4 +