[PATCH] RISC-V: Inform checksyscalls.sh about the rv32 ABI
Palmer Dabbelt
palmerdabbelt at google.com
Sat Oct 2 17:55:22 PDT 2021
On Mon, 06 Sep 2021 15:57:32 PDT (-0700), Arnd Bergmann wrote:
> On Mon, Sep 6, 2021 at 8:52 PM Palmer Dabbelt <palmerdabbelt at google.com> wrote:
>>
>> I remember having seen some build output from this before, but didn't
>> know what it meant. These are now showing up as errors.
>>
>> As far as I understand our 32-bit syscall ABI is fine, the issue here is
>> simply that we don't need the syscalls in question because we never had
>> the legacy versions to begin with. One could imagine describing these
>> constraints in an arch-generic way, but I'm not sure it's worth
>> bothering until another arch comes along that behaves this way.
>>
>> Fixes: d4c08b9776b3 ("riscv: Use latest system call ABI")
>> Signed-off-by: Palmer Dabbelt <palmerdabbelt at google.com>
>> ---
>> arch/riscv/include/asm/unistd.h | 14 ++++++++++++++
>> 1 file changed, 14 insertions(+)
>>
>> diff --git a/arch/riscv/include/asm/unistd.h b/arch/riscv/include/asm/unistd.h
>> index 6c316093a1e5..cbc2646b4662 100644
>> --- a/arch/riscv/include/asm/unistd.h
>> +++ b/arch/riscv/include/asm/unistd.h
>> @@ -14,3 +14,17 @@
>> #include <uapi/asm/unistd.h>
>>
>> #define NR_syscalls (__NR_syscalls)
>> +
>> +#if __BITS_PER_LONG == 32
>> +/*
>> + * RISC-V never had the 32-bit off/len syscall flavors, which means we don't
>> + * need the the explicit off64/len64 versions.
>> + */
>> +#define __IGNORE_fstat64
>> +#define __IGNORE_fstatat64
>
> These should be in the checksyscalls.pl script: new architectures can all just
> use statx() here. This has nothing to do with 32-bit off/len though, only
> with time64.
OK, I've sent a patch to add it over there.
>
>> +/*
>> + * RISC-V never had the 32-bit time_t syscall flavors, which means we don't
>> + * need the explicit 64-bit versions.
>> + */
>> +#define __IGNORE_clone3
>> +#endif
>
> clone3 should be implemented, IIRC it's only missing because there is no
> easy way to do an architecture-independent version.
Not sure what I was thinking when I wrote that one. Luckily there's an
easy __ARCH_WANT_SYS_CLONE3 now, so we can just use that. I'm not sure
why it never ended up in rv32, maybe because we were only testing rv64
at the time.
I sent a patch for this too.
More information about the linux-riscv
mailing list