[v2] linux-tools/perf: Add dependency on 32-bit atomics
diff mbox series

Message ID 20190418173845.14495-1-abrodkin@synopsys.com
State Accepted
Headers show
Series
  • [v2] linux-tools/perf: Add dependency on 32-bit atomics
Related show

Commit Message

Alexey Brodkin April 18, 2019, 5:38 p.m. UTC
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>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---

Changes v1 -> v2:
 * Depend on generic BR2_TOOLCHAIN_HAS_SYNC_4

 package/linux-tools/Config.in | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Thomas Petazzoni April 20, 2019, 1:50 p.m. UTC | #1
Hello,

On Thu, 18 Apr 2019 20:38:45 +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>
> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

I have applied to master, after doing one change, see below.

> +comment "perf needs 32-bit atomic ops"
> +	depends on !BR2_TOOLCHAIN_HAS_SYNC_4
> +

We typically don't add such comments, because it's an architecture
dependency. There is nothing the user can do about it, so there's no
point in having a comment.

Thanks!

Thomas
Peter Korsgaard April 24, 2019, 3:30 p.m. UTC | #2
>>>>> "Alexey" == Alexey Brodkin <Alexey.Brodkin@synopsys.com> writes:

 > 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>
 > Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
 > ---

 > Changes v1 -> v2:
 >  * Depend on generic BR2_TOOLCHAIN_HAS_SYNC_4

Committed to 2019.02.x, thanks.

Patch
diff mbox series

diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in
index 4916faa349..104065b22d 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_TOOLCHAIN_HAS_SYNC_4
 	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 32-bit atomic ops"
+	depends on !BR2_TOOLCHAIN_HAS_SYNC_4
+
 if BR2_PACKAGE_LINUX_TOOLS_PERF
 
 config BR2_PACKAGE_LINUX_TOOLS_PERF_TUI