[Buildroot] [PATCH 1/1] package/strace: disable mpers support

Yann E. MORIN yann.morin.1998 at free.fr
Mon Sep 7 22:56:55 UTC 2020


Heiko, Baruch, All,

On 2020-09-07 22:24 +0200, Heiko Thiery spake thusly:
> On aarch64 With the config option "--enable-mpers=check" the configure.ac

The name of that option is misleading. At first, I thought it was about
personalities:
    https://man7.org/linux/man-pages/man2/personality.2.html

... and so I was wondering why another compiler would come into the
mix...

> script searchs for a 32bit compiler. When a matching compiler is found
> in the PATH some compatiblity checks are done. This can fail when the
> available kernel headers on host and buildroot target does not match.
> 
> Since buildroot does not support 32bit binaries when building for 64bit
> architecture (no -m32 option) we can disable this option unconditionally.

... but indeed, mpers is not about personalities at all; it is about
multi-bitness systems. Buildroot does not support building a userland
for multi-bitness systems.

However, some systems may very well run a 64-bit kernel with a 32-bit
userland. In that case, strace should be able to interpret the syscalls
made by the process and the replies sent by the kernel, and those are
done in the bitness of the process, not of the kernel.

So, we always want an strace that is of the same bitness as the
userland. And so I indeed think we do not need this ill-named
multi-personality support of strace.

Note that some people may however run such multi-bitness systems. But in
that case, they had to build two userlands, a 32-bit one and a 64-bit
one, and somehow aggregate the two after the fact. In that case, they
would bear the responsibility to carry an strace for each bitness.

(Note: I've left the x32 ABI on the side on purpose: it is not a real
thing anymore, if it ever were...)

Regards,
Yann E. MORIN.

> When disabling unconditionally also the configuration for toolchain using
> MUSL can be removed.
> 
> Cc: Baruch Siach <baruch at tkos.co.il>
> Cc: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> Cc: Brandon Maier <brandon.maier at rockwellcollins.com>
> Signed-off-by: Heiko Thiery <heiko.thiery at gmail.com>
> ---
>  package/strace/strace.mk | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/package/strace/strace.mk b/package/strace/strace.mk
> index 8403e09cbd..50e6d90a87 100644
> --- a/package/strace/strace.mk
> +++ b/package/strace/strace.mk
> @@ -9,15 +9,7 @@ STRACE_SOURCE = strace-$(STRACE_VERSION).tar.xz
>  STRACE_SITE = https://strace.io/files/$(STRACE_VERSION)
>  STRACE_LICENSE = LGPL-2.1+
>  STRACE_LICENSE_FILES = COPYING LGPL-2.1-or-later
> -STRACE_CONF_OPTS = --enable-mpers=check
> -
> -# strace bundle some kernel headers to build libmpers, this mixes userspace
> -# headers and kernel headers which break the build with musl.
> -# The stddef.h from gcc is used instead of the one from musl.
> -ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
> -STRACE_CONF_OPTS += st_cv_m32_mpers=no \
> -	st_cv_mx32_mpers=no
> -endif
> +STRACE_CONF_OPTS = --enable-mpers=no
>  
>  ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
>  STRACE_DEPENDENCIES += libunwind
> -- 
> 2.20.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list