Message ID | 20190418093025.36642-1-abrodkin@synopsys.com |
---|---|
State | Superseded |
Headers | show |
Series | linux-tools/perf: Add dependency on atomic ops for ARC | expand |
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
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@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
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
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(+)