[PATCH v3 02/16] kbuild: userprogs: also inherit byte order and ABI from kernel

1 view
Skip to first unread message

Thomas Weißschuh

unread,
Jun 11, 2025, 3:38:34 AM6/11/25
to Masahiro Yamada, Nathan Chancellor, Andrew Morton, Willy Tarreau, Thomas Weißschuh, Brendan Higgins, David Gow, Rae Moar, Shuah Khan, Jonathan Corbet, Nicolas Schier, Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Christophe Leroy, linux-...@vger.kernel.org, linux-...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linu...@vger.kernel.org, linux...@lists.infradead.org, work...@vger.kernel.org, Thomas Weißschuh
Make sure the byte order and ABI of the userprogs matches the one of the
kernel, similar to how the bit size is handled.
Otherwise the userprogs may not be executable.
This happens for example on powerpc little endian, or riscv32.

Signed-off-by: Thomas Weißschuh <thomas.w...@linutronix.de>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index c4293cf91e968ca8ee64452841fb266e24df63f6..b9aa1058321dabd3b3dd5610e45a2807dfa257f4 100644
--- a/Makefile
+++ b/Makefile
@@ -1129,8 +1129,8 @@ ifneq ($(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS),)
LDFLAGS_vmlinux += --emit-relocs --discard-none
endif

-# Align the bit size of userspace programs with the kernel
-USERFLAGS_FROM_KERNEL := -m32 -m64 --target=%
+# Align the bit size, byte order and architecture of userspace programs with the kernel
+USERFLAGS_FROM_KERNEL := -m32 -m64 -mlittle-endian -mbig-endian --target=% -march=% -mabi=%
KBUILD_USERCFLAGS += $(filter $(USERFLAGS_FROM_KERNEL), $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS))
KBUILD_USERLDFLAGS += $(filter $(USERFLAGS_FROM_KERNEL), $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS))


--
2.49.0

Nicolas Schier

unread,
Jun 11, 2025, 9:53:56 AM6/11/25
to Thomas Weißschuh, Masahiro Yamada, Nathan Chancellor, Andrew Morton, Willy Tarreau, Thomas Weißschuh, Brendan Higgins, David Gow, Rae Moar, Shuah Khan, Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Christophe Leroy, linux-...@vger.kernel.org, linux-...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linu...@vger.kernel.org, linux...@lists.infradead.org, work...@vger.kernel.org
On Wed, Jun 11, 2025 at 09:38:08AM +0200, Thomas Weißschuh wrote:
> Make sure the byte order and ABI of the userprogs matches the one of the
> kernel, similar to how the bit size is handled.
> Otherwise the userprogs may not be executable.
> This happens for example on powerpc little endian, or riscv32.
>
> Signed-off-by: Thomas Weißschuh <thomas.w...@linutronix.de>
> ---
> Makefile | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>

Reviewed-by: Nicolas Schier <n.sc...@avm.de>

Masahiro Yamada

unread,
Jun 16, 2025, 10:50:21 AM6/16/25
to Thomas Weißschuh, Nathan Chancellor, Andrew Morton, Willy Tarreau, Thomas Weißschuh, Brendan Higgins, David Gow, Rae Moar, Shuah Khan, Jonathan Corbet, Nicolas Schier, Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Christophe Leroy, linux-...@vger.kernel.org, linux-...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linu...@vger.kernel.org, linux...@lists.infradead.org, work...@vger.kernel.org
Why didn't you do like this?

USERFLAGS_FROM_KERNEL := $(filter -m32 -m64 -mlittle-endian
-mbig-endian --target=% -march=% -mabi=%, $(KBUILD_CPPFLAGS)
$(KBUILD_CFLAGS))
KBUILD_USERCFLAGS += $(USERFLAGS_FROM_KERNEL)
KBUILD_USERLDFLAGS += $(USERFLAGS_FROM_KERNEL)



--
Best Regards
Masahiro Yamada

Thomas Weißschuh

unread,
Jun 17, 2025, 3:39:15 AM6/17/25
to Masahiro Yamada, Nathan Chancellor, Andrew Morton, Willy Tarreau, Thomas Weißschuh, Brendan Higgins, David Gow, Rae Moar, Shuah Khan, Jonathan Corbet, Nicolas Schier, Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Christophe Leroy, linux-...@vger.kernel.org, linux-...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linu...@vger.kernel.org, linux...@lists.infradead.org, work...@vger.kernel.org
The idea was to keep the USERFLAGS_FROM_KERNEL line free of clutter, as it is
probably going to change more often. To improve reviewability and gain some
available horizontal space in case it should be needed at some point.

If you prefer the other layout I'll be happy to switch it around.


Thomas

Masahiro Yamada

unread,
Jun 17, 2025, 9:14:47 PM6/17/25
to Thomas Weißschuh, Nathan Chancellor, Andrew Morton, Willy Tarreau, Thomas Weißschuh, Brendan Higgins, David Gow, Rae Moar, Shuah Khan, Jonathan Corbet, Nicolas Schier, Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Christophe Leroy, linux-...@vger.kernel.org, linux-...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linu...@vger.kernel.org, linux...@lists.infradead.org, work...@vger.kernel.org
On Tue, Jun 17, 2025 at 4:39 PM Thomas Weißschuh
$(filter ... $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS))

is duplicated in the two lines.

That is the reason for my suggestion.

Thomas Weißschuh

unread,
Jun 26, 2025, 2:10:21 AM6/26/25
to Masahiro Yamada, Nathan Chancellor, Andrew Morton, Willy Tarreau, Thomas Weißschuh, Brendan Higgins, David Gow, Rae Moar, Shuah Khan, Jonathan Corbet, Nicolas Schier, Christophe Leroy, linux-...@vger.kernel.org, linux-...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linu...@vger.kernel.org, work...@vger.kernel.org, Thomas Weißschuh
Make sure the byte order and ABI of the userprogs matches the one of the
kernel, similar to how the bit size is handled.
Otherwise the userprogs may not be executable.
This happens for example on powerpc little endian, or riscv32.

Signed-off-by: Thomas Weißschuh <thomas.w...@linutronix.de>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index c4293cf91e968ca8ee64452841fb266e24df63f6..b9aa1058321dabd3b3dd5610e45a2807dfa257f4 100644
--- a/Makefile
+++ b/Makefile
@@ -1129,8 +1129,8 @@ ifneq ($(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS),)
LDFLAGS_vmlinux += --emit-relocs --discard-none
endif

-# Align the bit size of userspace programs with the kernel
-USERFLAGS_FROM_KERNEL := -m32 -m64 --target=%
+# Align the bit size, byte order and architecture of userspace programs with the kernel
+USERFLAGS_FROM_KERNEL := -m32 -m64 -mlittle-endian -mbig-endian --target=% -march=% -mabi=%
KBUILD_USERCFLAGS += $(filter $(USERFLAGS_FROM_KERNEL), $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS))
KBUILD_USERLDFLAGS += $(filter $(USERFLAGS_FROM_KERNEL), $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS))


--
2.50.0

Nicolas Schier

unread,
Jul 3, 2025, 10:00:19 AM7/3/25
to Thomas Weißschuh, Masahiro Yamada, Nathan Chancellor, Andrew Morton, Willy Tarreau, Thomas Weißschuh, Brendan Higgins, David Gow, Rae Moar, Shuah Khan, Jonathan Corbet, Christophe Leroy, linux-...@vger.kernel.org, linux-...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linu...@vger.kernel.org, work...@vger.kernel.org
On Thu, Jun 26, 2025 at 08:10:10AM +0200, Thomas Weißschuh wrote:
> Make sure the byte order and ABI of the userprogs matches the one of the
> kernel, similar to how the bit size is handled.
> Otherwise the userprogs may not be executable.
> This happens for example on powerpc little endian, or riscv32.
>
> Signed-off-by: Thomas Weißschuh <thomas.w...@linutronix.de>
> ---
> Makefile | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

Reviewed-by: Nicolas Schier <n.sc...@avm.de>
signature.asc

Masahiro Yamada

unread,
Jul 4, 2025, 5:52:31 PM7/4/25
to Thomas Weißschuh, Nathan Chancellor, Andrew Morton, Willy Tarreau, Thomas Weißschuh, Brendan Higgins, David Gow, Rae Moar, Shuah Khan, Jonathan Corbet, Nicolas Schier, Christophe Leroy, linux-...@vger.kernel.org, linux-...@vger.kernel.org, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linu...@vger.kernel.org, work...@vger.kernel.org
Acked-by: Masahiro Yamada <masa...@kernel.org>
Reply all
Reply to author
Forward
0 new messages