Re: perf tools build broken after v5.1-rc1

From: Vineet Gupta
Date: Wed May 01 2019 - 17:18:15 EST

On 5/1/19 1:41 PM, Arnaldo Carvalho de Melo wrote:
>> The 1a787fc5ba18ac7 commit copied over the changes for arm64, but
>> missed all the other architectures changed in c8ce48f06503 and the
>> related commits.
> Right, I have a patch copying the missing headers, and that fixed the
> build with the glibc-based toolchain, but then broke the uCLibc one :-\

tools/perf/util/cloexec.c #includes <sys/syscall.h> which for glibc includes

uClibc <sys/syscall.h> OTOH #include <bits/sysnum.h> containign#define __NR_*
(generated by parsing kernel's unistd). This header does the right thing by
chekcing for redefs, but in the end we still collide with newly added
tools/arc/arc/*/**/unistd.h which doesn't have conditional definitions. I'm sure
this is not an ARC problem, any uClibc build would be affected. Do you have a arm
uclibc toolchain to test ?

All in all this is a mess. The quick band aid I can think of would be to add a
#ifndef __UCLIBC__ in tools/arch/arc/include/uapi/asm/unistd.h which is super
ugly, but in the end the solution is to get rid of this header duplicity.