lkml.org 
[lkml]   [2010]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectBuild log scripts
From
Introduction:

I'm a fan of linux-next. A big fan. Over the past years, it has saved me lots of
time!
However, like with all itches to scratch, there are a few areas for
improvement.


The issues:

o As a developer, I want to see if a change I made has any negative build
impact, perhaps on an obscure architecture.
Unless Stephen bugs me, I cannot notice easily.

o As an architecture maintainer, I want to know if a build problem in
platform-independent code happens for my arch only (probably my fault), or
for many arches (maybe not my fault).

o I want to know if there are any regressions/improvements since the previous
version.
The web pages do show a binary status indicator (green vs. red), but this
doesn't help:
- if there's a long-standing build issue (e.g. internal compiler error)
and it's red all the time,
- for warnings.

To solve these, I wrote a few scripts.
Of course they can be used outside the linux-next context as well.


The scripts:

o linux-log-summary.pl

Display a summary of all errors and warnings in one or more build logs.
The summary is sorted by the number of occurrences.
Optionally (using `-v'), the names of the affected build logs can be
listed for each error or warning.
You can combine multiple build logs by concatenating them, cfr. the
examples below.


o linux-log-diff.pl

Compare two build logs and display a summary of all regressions and
improvements.
Line numbers and other locations (e.g. offsets inside a section for
linker errors) are ignored in the actual comparison, only the number of
occurrences of each error or warning is compared, to compensate for the
addition and removal of source lines. The location information is printed
in the summary, though.
Again, you can combine multiple build logs.


o linux-next-update-branch9.pl

Helper script to parse the branch9 webpage and download the latest logs to
branch9/$arch/$config.


Sample output:

o summary-all.out

Summary of all of today's builds logs, i.e. the output of

cd branch9 && linux-log-summary.pl $(find * -type f | sort)
o summary-all-v.out

Summary of all of today's builds logs incl. the list of affected logfiles
for each error or warning, i.e. the output of

cd branch9 && linux-log-summary.pl -v $(find * -type f | sort)

o summary-arch.out
o summary-arch-v.out

Summaries of all build logs per architecture, i.e. running
linux-log-summary.pl on the result files of

for i in branch9/*; do cat $i/* > $(basename $i); done

o diff-all.out

Difference between all concatenated build logs on 2010-06-27 and all
concatenated build logs of today.


Where to find it?

I put all scripts and the sample output at
http://www.kernel.org/pub/linux/kernel/people/geert/linux-log/

I hope you'll like it!

Gr{oetje,eeting}s,
Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


\
 
 \ /
  Last update: 2010-07-13 22:53    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site