Re: kernel/fork.c:3088:2: warning: clone3() entry point is missing, please fix

Christian Brauner <[email protected]>
Newsgroups gmane.linux.ports.sparc,gmane.linux.kernel,gmane.linux.ports.hexagon,gmane.linux.ports.sh.devel,gmane.linux.kernel.cross-arch
Message-ID <20250701-packung-zweifach-49a0189a1dea@brauner>
On Mon, Jun 30, 2025 at 02:07:58PM +0200, Arnd Bergmann wrote:
> On Mon, Jun 30, 2025, at 12:45, John Paul Adrian Glaubitz wrote:
> > On Mon, 2025-06-30 at 12:02 +0200, Arnd Bergmann wrote:
> >> Some architectures have custom calling conventions for the
> >> fork/vfork/clone/clone3 syscalls, e.g. to handle copying all the
> >> registers correctly when the normal syscall entry doesn't do that,
> >> or to handle the changing stack correctly.
> >> 
> >> I see that both sparc and hexagon have a custom clone() syscall,
> >> so they likely need a custom clone3() as well, while sh and
> >> nios2 probably don't.
> >> 
> >> All four would need a custom assembler implementation in userspace
> >> for each libc, in order to test the userspace calling the clone3()
> >> function. For testing the kernel entry point itself, see Christian's
> >> original test case[1].
> >
> > Thanks for the explanation. So, I guess as long as a proposed implementation
> > of clone3() on sh would pass Arnd's test program, it should be good for merging?
> 
> Yes, Christian's test program should be enough for merging into
> the kernel, though I would recommend also coming up with the matching
> glibc patch, in order to ensure it can actually be regression tested
> automatically, and to use the new features provided by glibc clone3().

Note that we do have clone3() selftests in the kernel:

> ls -al tools/testing/selftests/clone3/
total 48
drwxrwxr-x   2 brauner brauner   175 Jun  4 22:45 .
drwxrwxr-x 118 brauner brauner  4096 Jun 16 10:10 ..
-rw-rw-r--   1 brauner brauner  7377 Apr 15 10:47 clone3.c
-rw-rw-r--   1 brauner brauner  3939 May 13 12:23 clone3_cap_checkpoint_restore.c
-rw-rw-r--   1 brauner brauner  2512 Apr 15 10:47 clone3_clear_sighand.c
-rw-rw-r--   1 brauner brauner  1437 Jun  4 22:45 clone3_selftests.h
-rw-rw-r--   1 brauner brauner 10738 Apr 15 10:47 clone3_set_tid.c
-rw-rw-r--   1 brauner brauner   113 Apr 11 15:36 .gitignore
-rw-rw-r--   1 brauner brauner   206 Apr 15 10:47 Makefile
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.