Applied, thanks!
On Mon, Dec 26, 2016 at 8:07 PM, Waldemar Brodkorb <[email protected]> wrote: > 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 <[email protected]> > Signed-off-by: Waldemar Brodkorb <[email protected]> > --- > v1 -> v2: > - fix modprobe-small.c, suggested by Rahul Bedarkar > - fix indentation > --- > 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 > > _______________________________________________ > busybox mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
