summaryrefslogtreecommitdiffhomepage
path: root/modutils
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2016-12-26 20:07:59 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2017-01-04 13:32:09 +0100
commit9c083f599a9924ad04855ce94439598e75424ad9 (patch)
tree4f58bc8eb271a5538a6d6ad82a9af9e1540ba5c7 /modutils
parent9529115c4ce87d4faecd1c55e547162efe74d629 (diff)
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 function old new delta bb_delete_module 26 32 +6 bb_init_module 90 95 +5 delete_module 37 - -37 init_module 53 - -53 ------------------------------------------------------------------------------ (add/remove: 0/4 grow/shrink: 2/0 up/down: 11/-90) Total: -79 bytes Reported-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'modutils')
-rw-r--r--modutils/modprobe-small.c4
-rw-r--r--modutils/modutils.c16
2 files changed, 8 insertions, 12 deletions
diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c
index 652ff4dfa..0fc9ea454 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 d36caaf68..4204f06fe 100644
--- a/modutils/modutils.c
+++ b/modutils/modutils.c
@@ -7,17 +7,13 @@
*/
#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)
{