Re: [RFC] making HAVE_SYSCALL_WRAPPERS universal (Re: Issues with "x86, um: switch to generic fork/vfork/clone" commit)

From: Arnd Bergmann
Date: Tue Jan 22 2013 - 08:16:29 EST


On Monday 21 January 2013, Al Viro wrote:
> Another question: what's the following comment from spu_callbacks.c about?
> * 4. They are optional and we can't rely on them being
> * linked into the kernel. Unfortunately, the cond_syscall
> * helper does not work here as it does not add the necessary
> * opd symbols:
> * mbind, mq_open, ipc, ...
> What isn't added? sys_ni_syscall is an OPD entry and weak aliases for it
> are created. That comment predates the conversion of cond_syscall()
> definition to the current one; it used to be
> .weak .foo
> .set .foo .sys_ni_syscall
> and that wouldn't have created the second alias; is it simply obsolete?

Yes, I think that is correct, it was fixed years ago when the old
toolchains that couldn's support it got deprecated, in

commit 8dc86ab954d28513f75918d743c40cddbff7388a
Author: Geoff Levand <geoffrey.levand@xxxxxxxxxxx>
Date: Mon Nov 20 18:44:56 2006 +0100

[POWERPC] Change ppc_rtas declaration to weak

Change the definition of powerpc's cond_syscall() to use the standard gcc
weak attribute specifier which provides proper support for C linkage as
needed by spu_syscall_table[].

Fixes this powerpc build error with CONFIG_SPU_FS=y, CONFIG_PPC_RTAS=n:

arch/powerpc/platforms/built-in.o: undefined reference to `ppc_rtas'

but we forgot enable the remaining ones.

> Note that mbind and friends still are not available to SPU; should that
> be changed now that we can do that?

We could certainly change it, if someone is willing to go through the
list and mark the ones that should be added. It's probably not necessary,
I have never seen any SPU application that actually did any but the most
basic syscalls itself.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/