[PATCH 04/24] 32-bit userspace ABI: introduce ARCH_32BIT_OFF_T config option
From: Palmer Dabbelt <hidden>
Date: 2018-08-02 18:31:00
Also in:
linux-api, linux-arch, linux-doc, lkml
On Sun, 24 Jun 2018 23:19:50 PDT (-0700), ynorov at caviumnetworks.com wrote:
On Mon, Jun 11, 2018 at 02:27:36PM +0300, Yury Norov wrote:quoted
On Mon, Jun 11, 2018 at 09:48:02AM +0200, Arnd Bergmann wrote:quoted
On Sat, Jun 9, 2018 at 9:42 AM, Yury Norov [off-list ref] wrote:quoted
On Fri, Jun 08, 2018 at 06:32:07PM +0100, Catalin Marinas wrote:quoted
On Wed, May 16, 2018 at 11:18:49AM +0300, Yury Norov wrote:quoted
diff --git a/arch/Kconfig b/arch/Kconfig index 76c0b54443b1..ee079244dc3c 100644 --- a/arch/Kconfig +++ b/arch/Kconfig@@ -264,6 +264,21 @@ config ARCH_THREAD_STACK_ALLOCATOR config ARCH_WANTS_DYNAMIC_TASK_STRUCT bool +config ARCH_32BIT_OFF_T + bool + depends on !64BIT + help + All new 32-bit architectures should have 64-bit off_t type on + userspace side which corresponds to the loff_t kernel type. This + is the requirement for modern ABIs. Some existing architectures + already have 32-bit off_t. This option is enabled for all such + architectures explicitly. Namely: arc, arm, blackfin, cris, frv, + h8300, hexagon, m32r, m68k, metag, microblaze, mips32, mn10300, + nios2, openrisc, parisc32, powerpc32, score, sh, sparc, tile32, + unicore32, x86_32 and xtensa. This is the complete list. Any + new 32-bit architecture should declare 64-bit off_t type on user + side and so should not enable this option.Do you know if this is the case for riscv and nds32, merged in the meantime? If not, I suggest you drop this patch altogether and just define force_o_largefile() for arm64/ilp32 as we don't seem to stick to "all new 32-bit architectures should have 64-bit off_t".I wrote this patch at request of Arnd Bergmann. This is actually his words that all new 32-bit architectures should have 64-bit off_t. So I was surprized when riscv was merged with 32-bit off_t (and I didn't follow nds32). If this rule is still in force, we'd better add new exceptions to this patch. Otherwise, we can drop it. Arnd, could you please comment it?I completely forgot about it and had assumed that it was merged long ago, sorry about that.Hi Arnd, There are 3 patches like this in ILP32 series that change ABI for new targets. I've submitted them in separated series: https://lkml.org/lkml/2017/9/25/574 They all seems to be acked by you. If you ready to upstream the series, I can rebase it and add riscv32 and nds32 exceptions. If Palmer and riscv people will decide to follow new rules, we can easily drop the exception.Ping?
Sorry to be a bit slow, but we just decided to skip this current glibc release for rv32i and instead focus on getting the 32-bit ABI nice and clean for the next release. Thus we in RISC-V land are OK with taking these changes to the 32-bit kernel ABI.