>>>>> "Waldemar" == Waldemar Brodkorb <[email protected]> writes:
> Hi Ben, > patch applied and pushed. What is the impact of this exactly? As far as I can see, this causes linking something using fork() on nommu to now generate a linker warning but no longer fail with a missing symbol. Is that an improvement? Looking with my Buildroot glasses, I could imagine that such linker warnings could easily be missed in a big build, whereas a linker error naturally not. > best regards > Waldemar > Ben Wolsieffer wrote, >> From: Ben Wolsieffer <[email protected]> >> >> fork() can be implemented using either the fork or clone syscalls on MMU >> systems. Therefore the stub is only generated if neither __NR_fork nor >> __NR_clone are defined. The stub code manually undefines __NR_fork on >> no-MMU systems in an attempt to enable the stub, but this doesn't work >> because __NR_clone is still defined. It is not appropriate to undefine >> __NR_clone because clone is available on no-MMU, it is just not capable >> of implementing fork. >> >> This patch directly enables the fork stub if __ARCH_USE_MMU__ is not >> defined. This eliminates the need to undefine __NR_fork, so this code is >> removed >> >> Signed-off-by: Ben Wolsieffer <[email protected]> >> --- >> libc/sysdeps/linux/common/stubs.c | 6 +----- >> 1 file changed, 1 insertion(+), 5 deletions(-) >> >> diff --git a/libc/sysdeps/linux/common/stubs.c >> b/libc/sysdeps/linux/common/stubs.c >> index c17e509b9..634dcde0d 100644 >> --- a/libc/sysdeps/linux/common/stubs.c >> +++ b/libc/sysdeps/linux/common/stubs.c >> @@ -34,10 +34,6 @@ __attribute_used__ static int ret_enosys_stub(void) >> link_warning(stub, #stub ": this function is not implemented") \ >> strong_alias(ret_enosys_stub, stub) >> >> -#ifndef __ARCH_USE_MMU__ >> -# undef __NR_fork >> -#endif >> - >> #ifdef __arm__ >> # define __NR_fadvise64_64 __NR_arm_fadvise64_64 >> # define __NR_fadvise64 __NR_arm_fadvise64_64 >> @@ -120,7 +116,7 @@ make_stub(fgetxattr) >> make_stub(flistxattr) >> #endif >> >> -#if !defined __NR_fork && !defined __NR_clone >> +#if !defined __ARCH_USE_MMU__ || (!defined __NR_fork && !defined >> __NR_clone) >> make_stub(fork) >> #endif >> >> -- >> 2.42.0 >> > _______________________________________________ > devel mailing list -- [email protected] > To unsubscribe send an email to [email protected] -- Bye, Peter Korsgaard _______________________________________________ devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
