[RFC PATCH] modutils: fix build with uClibc
Rahul Bedarkar
Rahul.Bedarkar at imgtec.com
Wed Dec 21 07:20:13 UTC 2016
Hi,
On Wednesday 21 December 2016 12:30 PM, Waldemar Brodkorb wrote:
> Hi,
> Rahul Bedarkar wrote,
>
>> Commit 3a45b87ac36f (modutils: support finit_module syscall) introduced
>> macro finit_module. But it is not defined for uClibc.
>>
>> 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'
>>
>> This commit guards usage of finit_module when not using uClibc.
>
> Do you have an idea why this error is not happening with glibc or
> musl?
>
As mentioned in commit message, commit 3a45b87ac36f (modutils: support
finit_module syscall) has introduced macro finit_module which is defined
in else part of #ifdef __UCLIBC__ and in actual usage it is only guarded
for __NR_finit_module which leads to this error for uClibc only.
Following is code snippet from modutils.c where finit_module macro is
defined.
#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)
#endif
Thanks,
Rahul
More information about the busybox
mailing list