[PATCH v2] modutils: remove special handling of uClibc

Denys Vlasenko vda.linux at googlemail.com
Wed Jan 4 12:32:29 UTC 2017


Applied, thanks!

On Mon, Dec 26, 2016 at 8:07 PM, Waldemar Brodkorb <wbx at openadk.org> 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 <rahul.bedarkar at imgtec.com>
> Signed-off-by: Waldemar Brodkorb <wbx at openadk.org>
> ---
>  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
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox


More information about the busybox mailing list