Thread (58 messages) 58 messages, 12 authors, 2019-07-09

[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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help