Subject: Re: [PATCH/RFC 01/16] compat: let architectures define __ARCH_WANT_COMPAT_SYS_GETDENTS64

From: Heiko Carstens <[email-masked]>
Date: Thu, 20 Mar 2014 12:33:33 +0100

On Thu, Mar 20, 2014 at 11:03:14AM +0100, Geert Uytterhoeven wrote:
> On Thu, Mar 6, 2014 at 4:51 PM, Heiko Carstens
> <[email-masked]> wrote:
> > For architecture dependent compat syscalls in common code an architecture
> > must define something like __ARCH_WANT_<WHATEVER> if it wants to use the
> > code.
> > This however is not true for compat_sys_getdents64 for which architectures
> > must define __ARCH_OMIT_COMPAT_SYS_GETDENTS64 if they do not want the code.
> >
> > This leads to the situation where all architectures, except mips, get the
> > compat code but only x86_64, arm64 and the generic syscall architectures
> > actually use it.
> >
> > So invert the logic, so that architectures actively must do something to
> > get the compat code.
> >
> > This way a couple of architectures get rid of otherwise dead code.
> >
> > Signed-off-by: Heiko Carstens <[email-masked]>
> 
> Is this the cause of the tilegx_defconfig failures in -next?
> 
> include/uapi/asm-generic/unistd.h:195:1: error:
> 'compat_sys_getdents64' undeclared here (not in a function)
> make[3]: *** [arch/tile/kernel/compat.o] Error 1
> 
> http://kisskb.ellerman.id.au/kisskb/buildresult/10808012/

Yes. That's unexpected header include order from my side...
Looking into it. Thanks!