Thread (17 messages) 17 messages, 5 authors, 2019-02-25

Re: [PATCH 2/8] 32-bit userspace ABI: introduce ARCH_32BIT_OFF_T config option

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2019-02-19 08:56:36
Also in: linux-arch, linux-arm-kernel, linux-riscv, lkml

Hi Arnd, Yuri,

On Tue, Feb 19, 2019 at 3:35 AM Arnd Bergmann [off-list ref] wrote:
From: Yury Norov <redacted>

All new 32-bit architectures should have 64-bit userspace off_t type, but
existing architectures has 32-bit ones.

To enforce the rule, new config option is added to arch/Kconfig that defaults
ARCH_32BIT_OFF_T to be disabled for new 32-bit architectures. All existing
32-bit architectures enable it explicitly.

New option affects force_o_largefile() behaviour. Namely, if userspace
off_t is 64-bits long, we have no reason to reject user to open big files.

Note that even if architectures has only 64-bit off_t in the kernel
(arc, c6x, h8300, hexagon, nios2, openrisc, and unicore32),
a libc may use 32-bit off_t, and therefore want to limit the file size
to 4GB unless specified differently in the open flags.

Signed-off-by: Yury Norov <redacted>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Yury Norov <redacted>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 arch/m68k/Kconfig       |  1 +
For m68k:
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
quoted hunk ↗ jump to hunk
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -276,6 +276,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
s/already/still/
+         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
Do we really need this list here?  It's intended to shrink only.
It includes removed architectures (blackfin, cris, frv, m32r, metag,
mn10300, score, tile32), but lacks several new ones affected by this
patch (c6x, csky, nds32, riscv).
+         new 32-bit architecture should declare 64-bit off_t type on user
+         side and so should not enable this option.
+
 config HAVE_REGS_AND_STACK_ACCESS_API
        bool
        help
Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help