[Ksummit-discuss] [TECH TOPIC] tools/Makefile: Fix Many Many problems and inconsistencies

Arnaldo Carvalho de Melo acme at kernel.org
Tue Sep 6 14:57:48 UTC 2016


Em Sun, Sep 04, 2016 at 10:15:02PM +0100, Ben Hutchings escreveu:
> [Slowly catching up on ksummit-discuss]
> 
> On Mon, 2016-08-01 at 20:46 -0700, Randy Dunlap wrote:
> > and subdir Makefiles.
> > 
> > Examples:
> > 
> > Use/honor O=outputdir consistently instead of building in <kerneltree>/tools.
> > (check/compare kernel commit bf35182ffcd00d8b36d56210ffdac110e5624d7d)
> > 
> > Honor MAKEFLAGS (well, they aren't even passed to tools/Makefile AFAICT.
> > from an execution log:
> > make LDFLAGS= MAKEFLAGS="" O=/local/lnx/kernel/lnx-47/TOOLS subdir=tools -C ../tools/ all
> > 
> > Use make's "findstring" correctly (see patch below)
> > 
> > There are lots of other problems unless I have just had too much too drink tonight,
> > so here's the TECH TOPIC:
> > 
> > In a 1.5 hour code crunch session, get a bunch of interested people together to fix
> > a lot of problems quickly.  Then I will be a guinea pig tester.  :)
> [...]
> 
> I don't know how much can be done in that time.  I've had some
> recurring pains in packaging tools/:
> 
> 1. Many different build systems
>    - Inconsistent support for configuration variables (not just 'O')
>    - usbip isn't included in a recursive build, presumably because
>      it uses autotools

Right, that needs improving, I haven't looked at anything outside
tools/{arch,build,lib,include,objtool,perf}
 
> 2. Tools include UAPI headers in one of two ways, neither of which is
>    reliable:
>    - Assume the current headers are on the system include path
>    - Include unprocessed UAPI headers through a relative path
> 
>    The right thing to do is to run 'make headers_install' and add
>    usr/ to the front of the system include path.  But we'd want a
>    way to avoid re-doing that when the UAPI headers haven't changed.

Again, haven't checked outside the above list of directories, by now,
tools/perf/ doesn't use anything outside tools/, are you talking about
other tools that touch kernel source files outside tools/?
 
> 3. Tools frequently fail to build in stable releases (sometimes on
>    specific architectures) - seems like tools/ is not covered by CI
>    or it's ignored

The list above I've been running over a set of docker image
repositories, now publicly available, each with a set of tags for distro
releases and cross build environments.

https://hub.docker.com/r/acmel/linux-perf-tools-build-alpine     
https://hub.docker.com/r/acmel/linux-perf-tools-build-android-ndk
https://hub.docker.com/r/acmel/linux-perf-tools-build-archlinux  
https://hub.docker.com/r/acmel/linux-perf-tools-build-centos     
https://hub.docker.com/r/acmel/linux-perf-tools-build-debian     
https://hub.docker.com/r/acmel/linux-perf-tools-build-fedora     
https://hub.docker.com/r/acmel/linux-perf-tools-build-mageia     
https://hub.docker.com/r/acmel/linux-perf-tools-build-opensuse   
https://hub.docker.com/r/acmel/linux-perf-tools-build-ubuntu

> This last point is more of a core topic though.
> 
> Ben.
> 
> -- 
> Ben Hutchings
> Once a job is fouled up, anything done to improve it makes it worse.



> _______________________________________________
> Ksummit-discuss mailing list
> Ksummit-discuss at lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/ksummit-discuss



More information about the Ksummit-discuss mailing list