[Buildroot] [PATCH] linux-tools/perf: Add dependency on atomic ops for ARC

Thomas Petazzoni thomas.petazzoni at bootlin.com
Thu Apr 18 09:41:15 UTC 2019


Hello,

On Thu, 18 Apr 2019 12:30:25 +0300
Alexey Brodkin <Alexey.Brodkin at 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 at 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


More information about the buildroot mailing list