All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] linux-tools/perf: Add dependency on atomic ops for ARC
@ 2019-04-18  9:30 Alexey Brodkin
  2019-04-18  9:41 ` Thomas Petazzoni
  0 siblings, 1 reply; 3+ messages in thread
From: Alexey Brodkin @ 2019-04-18  9:30 UTC (permalink / raw)
  To: buildroot

Atomic ops are strictly required by perf utility as it uses
atomic_xxx() functions.

Otherwise building fails like that:
|.../output/host/opt/ext-toolchain/bin/../lib/gcc/arc-snps-linux-uclibc/8.2.1/../../../../arc-snps-linux-uclibc/bin/ld:
|.../output/build/linux-5.0.7/tools/perf/libperf.a(libperf-in.o): in function `atomic_cmpxchg':
|.../output/build/linux-5.0.7/tools/include/asm-generic/atomic-gcc.h:69: undefined reference to `__sync_val_compare_and_swap_4'

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
 package/linux-tools/Config.in | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in
index 4916faa349..15257e499e 100644
--- a/package/linux-tools/Config.in
+++ b/package/linux-tools/Config.in
@@ -46,6 +46,7 @@ config BR2_PACKAGE_LINUX_TOOLS_PCI
 config BR2_PACKAGE_LINUX_TOOLS_PERF
 	bool "perf"
 	select BR2_PACKAGE_LINUX_TOOLS
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	help
 	  perf (sometimes "Perf Events" or perf tools, originally
 	  "Performance Counters for Linux") - is a performance
@@ -64,6 +65,9 @@ config BR2_PACKAGE_LINUX_TOOLS_PERF
 
 	  https://perf.wiki.kernel.org/
 
+comment "perf needs atomic ops like LLOCK/SCOND on ARC"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
+
 if BR2_PACKAGE_LINUX_TOOLS_PERF
 
 config BR2_PACKAGE_LINUX_TOOLS_PERF_TUI
-- 
2.16.2

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH] linux-tools/perf: Add dependency on atomic ops for ARC
  2019-04-18  9:30 [Buildroot] [PATCH] linux-tools/perf: Add dependency on atomic ops for ARC Alexey Brodkin
@ 2019-04-18  9:41 ` Thomas Petazzoni
  2019-04-18 17:06   ` [Buildroot] [arc-buildroot] " Alexey Brodkin
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni @ 2019-04-18  9:41 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu, 18 Apr 2019 12:30:25 +0300
Alexey Brodkin <Alexey.Brodkin@synopsys.com> wrote:

> Atomic ops are strictly required by perf utility as it uses
> atomic_xxx() functions.
> 
> Otherwise building fails like that:
> |.../output/host/opt/ext-toolchain/bin/../lib/gcc/arc-snps-linux-uclibc/8.2.1/../../../../arc-snps-linux-uclibc/bin/ld:
> |.../output/build/linux-5.0.7/tools/perf/libperf.a(libperf-in.o): in function `atomic_cmpxchg':
> |.../output/build/linux-5.0.7/tools/include/asm-generic/atomic-gcc.h:69: undefined reference to `__sync_val_compare_and_swap_4'
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> ---
>  package/linux-tools/Config.in | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in
> index 4916faa349..15257e499e 100644
> --- a/package/linux-tools/Config.in
> +++ b/package/linux-tools/Config.in
> @@ -46,6 +46,7 @@ config BR2_PACKAGE_LINUX_TOOLS_PCI
>  config BR2_PACKAGE_LINUX_TOOLS_PERF
>  	bool "perf"
>  	select BR2_PACKAGE_LINUX_TOOLS
> +	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT

Since the actual dependency is on sync builtins, can we use
BR2_TOOLCHAIN_HAS_SYNC_4 instead ?

BR2_TOOLCHAIN_HAS_SYNC_4 is already defined like this:

config BR2_TOOLCHAIN_HAS_SYNC_4
        bool
        default y
        depends on !BR2_m68k_cf
        depends on !BR2_sparc
        depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)

i.e, it is already false on ARC systems that don't have
BR2_ARC_ATOMIC_EXT.

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] [arc-buildroot] [PATCH] linux-tools/perf: Add dependency on atomic ops for ARC
  2019-04-18  9:41 ` Thomas Petazzoni
@ 2019-04-18 17:06   ` Alexey Brodkin
  0 siblings, 0 replies; 3+ messages in thread
From: Alexey Brodkin @ 2019-04-18 17:06 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

> -----Original Message-----
> From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Sent: Thursday, April 18, 2019 12:41 PM
> To: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: buildroot at busybox.net; ARC Buildroot mailing list <arc-buildroot@synopsys.com>
> Subject: Re: [arc-buildroot] [Buildroot] [PATCH] linux-tools/perf: Add dependency on atomic ops for
> ARC
> 
> Hello,
> 
> On Thu, 18 Apr 2019 12:30:25 +0300
> Alexey Brodkin <Alexey.Brodkin@synopsys.com> wrote:
> 
> > Atomic ops are strictly required by perf utility as it uses
> > atomic_xxx() functions.

[snip]
 
> Since the actual dependency is on sync builtins, can we use
> BR2_TOOLCHAIN_HAS_SYNC_4 instead ?
> 
> BR2_TOOLCHAIN_HAS_SYNC_4 is already defined like this:
> 
> config BR2_TOOLCHAIN_HAS_SYNC_4
>         bool
>         default y
>         depends on !BR2_m68k_cf
>         depends on !BR2_sparc
>         depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT)

That looks much better in fact, so re-spin is coming.
Thanks for the hint!

-Alexey

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-04-18 17:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-18  9:30 [Buildroot] [PATCH] linux-tools/perf: Add dependency on atomic ops for ARC Alexey Brodkin
2019-04-18  9:41 ` Thomas Petazzoni
2019-04-18 17:06   ` [Buildroot] [arc-buildroot] " Alexey Brodkin

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.