Re: [PATCH 14/19] csky: Misc headers

From: Arnd Bergmann
Date: Tue Mar 20 2018 - 03:55:02 EST


On Tue, Mar 20, 2018 at 11:36 AM, Guo Ren <ren_guo@xxxxxxxxx> wrote:
> Hi Arnd,
>
> On Tue, Mar 20, 2018 at 12:11:24AM +0800, Arnd Bergmann wrote:
>> On Mon, Mar 19, 2018 at 3:51 AM, Guo Ren <ren_guo@xxxxxxxxx> wrote:
>> > +++ b/arch/csky/include/uapi/asm/fcntl.h
>> > @@ -0,0 +1,13 @@
>> > +// SPDX-License-Identifier: GPL-2.0
>> > +// Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
>> > +#ifndef __ASM_CSKY_FCNTL_H
>> > +#define __ASM_CSKY_FCNTL_H
>> > +
>> > +#define O_DIRECTORY 040000
>> > +#define O_NOFOLLOW 0100000
>> > +#define O_DIRECT 0200000
>> > +#define O_LARGEFILE 0400000
>> > +
>> > +#include <asm-generic/fcntl.h>
>>
>> This should just use the generic file without overrides: Please don't diverge
>> from the generic syscall ABI.
>>
>
> It's a stupid copy from arm/include/uapi/asm/fcntl.h and the csky/bits/fcntl.h
> in uclibc-ng and glibc are also defined with:
>
> #define __O_DIRECTORY 040000 /* Must be a directory. */
> #define __O_NOFOLLOW 0100000 /* Do not follow links. */
> #define __O_DIRECT 0200000 /* Direct disk access. */
> #define __O_LARGEFILE 0400000
>
> So may I keep it for a while?
> (I will let glibc uclibc-ng csky/bits/fcntl.h include the linux/uapi/asm/fcntl.h
> first.)

We generally assume that any upstream kernel ABI cannot be changed, so this
has to be changed before the code gets merged upstream.

You can obviously maintain the old and the new ABI in parallel for a while,
until the libc supports the new ABI, but you can't do that in the patches
you send for integration.

This is more important for the list of system calls, but when you change
the ABI, it should be changed all at once.

Arnd