12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- From 7cf41b6e281c42fb7f2117927a8ff7f476103e76 Mon Sep 17 00:00:00 2001
- From: Waldemar Brodkorb <wbx@openadk.org>
- Date: Sun, 25 Dec 2016 16:53:32 +0100
- Subject: [PATCH] modutils: remove special handling of uClibc
- Commit 3a45b87ac36f (modutils: support finit_module syscall) introduced
- macro finit_module. But it is not defined for uClibc.
- The compilation for busybox fails for MIPS with:
- With uClibc, we get following build errors:
- modutils/lib.a(modutils.o): In function `bb_init_module':
- modutils.c:(.text.bb_init_module+0x94): undefined reference to `finit_module'
- modutils.c:(.text.bb_init_module+0xa0): undefined reference to `finit_module'
- We can just use syscall() without any need for the
- uClibc wrappers.
- Newer versions of uClibc-ng (>1.0.20) will remove the
- module syscall wrappers.
- Found via Buildroot autobuilders:
- http://autobuild.buildroot.net/results/556/55655daef23788fb3967f801ec8b79e9bed7122b/build-end.log
- Reported-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
- Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
- ---
- modutils/modprobe-small.c | 4 ++--
- modutils/modutils.c | 15 +++++----------
- 2 files changed, 7 insertions(+), 12 deletions(-)
- diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c
- index 652ff4d..0fc9ea4 100644
- --- a/modutils/modprobe-small.c
- +++ b/modutils/modprobe-small.c
- @@ -39,8 +39,8 @@
- #include <fnmatch.h>
- #include <sys/syscall.h>
-
- -extern int init_module(void *module, unsigned long len, const char *options);
- -extern int delete_module(const char *module, unsigned flags);
- +#define init_module(mod, len, opts) syscall(__NR_init_module, mod, len, opts)
- +#define delete_module(mod, flags) syscall(__NR_delete_module, mod, flags)
- #ifdef __NR_finit_module
- # define finit_module(fd, uargs, flags) syscall(__NR_finit_module, fd, uargs, flags)
- #endif
- diff --git a/modutils/modutils.c b/modutils/modutils.c
- index d36caaf..d56bfc8 100644
- --- a/modutils/modutils.c
- +++ b/modutils/modutils.c
- @@ -7,17 +7,12 @@
- */
- #include "modutils.h"
-
- -#ifdef __UCLIBC__
- -extern int init_module(void *module, unsigned long len, const char *options);
- -extern int delete_module(const char *module, unsigned int flags);
- -#else
- -# include <sys/syscall.h>
- -# define init_module(mod, len, opts) syscall(__NR_init_module, mod, len, opts)
- -# if defined(__NR_finit_module)
- -# define finit_module(fd, uargs, flags) syscall(__NR_finit_module, fd, uargs, flags)
- -# endif
- -# define delete_module(mod, flags) syscall(__NR_delete_module, mod, flags)
- +#include <sys/syscall.h>
- +#define init_module(mod, len, opts) syscall(__NR_init_module, mod, len, opts)
- +#if defined(__NR_finit_module)
- +# define finit_module(fd, uargs, flags) syscall(__NR_finit_module, fd, uargs, flags)
- #endif
- +#define delete_module(mod, flags) syscall(__NR_delete_module, mod, flags)
-
- static module_entry *helper_get_module(module_db *db, const char *module, int create)
- {
- --
- 2.1.4
|