All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] package/numactl: make available on all architectures
Date: Sat, 24 Apr 2021 22:08:42 +0200	[thread overview]
Message-ID: <20210424200842.GV298901@scaer> (raw)
In-Reply-To: <20210418162359.3462571-1-thomas.petazzoni@bootlin.com>

Thomas, All,

On 2021-04-18 18:23 +0200, Thomas Petazzoni spake thusly:
> Since its introduction in commit
> b05e74ff92b6728369e1540fc0a2bd60025f2146 in 2013, numactl has had an
> explicit list of architectures that it supports. Interestingly, this
> list does not include ARM, and now that rt-tests unconditionally needs
> numactl, it meant the rt-tests package was no longer available on ARM.
> 
> Further investigation revealed that there is nothing in recent
> versions of numactl that appears to be architecture-specific. It does
> build with all of Buildroot toolchains currently used in the
> autobuilders.
> 
> The only necessary changes are:
> 
>  * Exclude no-MMU architectures, as madvise() is used in the code
>    base, and this is not available on no-MMU architectures.
> 
>  * Make sure to use -latomic when needed, as some atomic operations
>    are used.
> 
>  * Backport a patch that fixes the .symver usage, which only affects
>    really old gcc versions: only the old ARM Sourcery toolchain was
>    affected by this. Newer gcc versions support the gcc "symver"
>    attribute, so that the code that directly emits the assembly
>    .symver directive is not invoked.
> 
> With these changes, numactl builds successfully on all our supported
> toolchains.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  ...0001-Do-not-stringify-SYMVER-symbols.patch | 25 +++++++++++++++++++
>  package/numactl/Config.in                     | 11 +-------
>  package/numactl/numactl.mk                    |  4 +++
>  package/rt-tests/Config.in                    |  4 +--
>  4 files changed, 31 insertions(+), 13 deletions(-)
>  create mode 100644 package/numactl/0001-Do-not-stringify-SYMVER-symbols.patch
> 
> diff --git a/package/numactl/0001-Do-not-stringify-SYMVER-symbols.patch b/package/numactl/0001-Do-not-stringify-SYMVER-symbols.patch
> new file mode 100644
> index 0000000000..c6981aaf73
> --- /dev/null
> +++ b/package/numactl/0001-Do-not-stringify-SYMVER-symbols.patch
> @@ -0,0 +1,25 @@
> +From f96c96af7fbf2779b15f66f03b10315a24fb4f5a Mon Sep 17 00:00:00 2001
> +From: Scott McMillan <smcmillan@nvidia.com>
> +Date: Fri, 9 Oct 2020 08:56:52 -0500
> +Subject: [PATCH] Do not stringify SYMVER symbols
> +
> +Upstream: f96c96af7fbf2779b15f66f03b10315a24fb4f5a
> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> +---
> + util.h | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/util.h b/util.h
> +index 99ada33..f2a20ac 100644
> +--- a/util.h
> ++++ b/util.h
> +@@ -22,5 +22,5 @@ extern char *policy_name(int policy);
> + #if HAVE_ATTRIBUTE_SYMVER
> + #define SYMVER(a,b) __attribute__ ((symver (b)))
> + #else
> +-#define SYMVER(a,b) __asm__ (".symver " #a "," #b);
> ++#define SYMVER(a,b) __asm__ (".symver " a "," b);
> + #endif
> +-- 
> +2.30.2
> +
> diff --git a/package/numactl/Config.in b/package/numactl/Config.in
> index cd47f2f9a9..23cf7facb0 100644
> --- a/package/numactl/Config.in
> +++ b/package/numactl/Config.in
> @@ -1,15 +1,6 @@
> -config BR2_PACKAGE_NUMACTL_ARCH_SUPPORTS
> -	bool
> -	# numactl uses some system calls that are not available on all
> -	# architectures.
> -	default y if BR2_aarch64
> -	default y if BR2_i386 || BR2_x86_64
> -	default y if BR2_mips || BR2_mipsel ||  BR2_mips64 || BR2_mips64el
> -	default y if BR2_powerpc
> -
>  config BR2_PACKAGE_NUMACTL
>  	bool "numactl"
> -	depends on BR2_PACKAGE_NUMACTL_ARCH_SUPPORTS
> +	depends on BR2_USE_MMU # madvise()
>  	help
>  	  numactl allows you to run your application on specific cpus
>  	  and memory nodes. It does this by supplying a NUMA memory
> diff --git a/package/numactl/numactl.mk b/package/numactl/numactl.mk
> index cf9c759693..3364f6c5c3 100644
> --- a/package/numactl/numactl.mk
> +++ b/package/numactl/numactl.mk
> @@ -12,4 +12,8 @@ NUMACTL_INSTALL_STAGING = YES
>  NUMACTL_AUTORECONF = YES
>  NUMACTL_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -fPIC"
>  
> +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> +NUMACTL_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -latomic"
> +endif
> +
>  $(eval $(autotools-package))
> diff --git a/package/rt-tests/Config.in b/package/rt-tests/Config.in
> index cc9b14dccb..477fa288d7 100644
> --- a/package/rt-tests/Config.in
> +++ b/package/rt-tests/Config.in
> @@ -2,10 +2,9 @@ config BR2_PACKAGE_RT_TESTS
>  	bool "rt-tests"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
>  	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 # deadline scheduler syscall
> -	depends on BR2_USE_MMU # fork()
> +	depends on BR2_USE_MMU # fork(), numactl
>  	depends on !BR2_STATIC_LIBS # dlopen
>  	depends on !BR2_TOOLCHAIN_USES_MUSL # cyclictest
> -	depends on BR2_PACKAGE_NUMACTL_ARCH_SUPPORTS
>  	select BR2_PACKAGE_NUMACTL
>  	help
>  	  Set of utilities for testing the real-time behaviour of a
> @@ -34,4 +33,3 @@ comment "rt-tests needs a uClibc or glibc toolchain w/ NPTL, headers >= 3.14, dy
>  	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS \
>  		|| BR2_TOOLCHAIN_USES_MUSL || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
>  	depends on BR2_USE_MMU
> -	depends on BR2_PACKAGE_NUMACTL_ARCH_SUPPORTS
> -- 
> 2.30.2
> 
> _______________________________________________
> 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.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2021-04-24 20:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-18 16:23 [Buildroot] [PATCH] package/numactl: make available on all architectures Thomas Petazzoni
2021-04-24 20:08 ` Yann E. MORIN [this message]
2021-04-26 20:59 ` Peter Korsgaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210424200842.GV298901@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.