[head tinderbox] failure on powerpc64/powerpc
Dag-Erling Smørgrav
des at des.no
Sun Aug 22 12:10:50 UTC 2010
Nathan Whitehorn <nwhitehorn at freebsd.org> writes:
> Dag-Erling Smørgrav <des at des.no> writes:
> > I'm not sure I understand what you mean (or rather, how it would
> > help the tinderbox). What *would* help would be an easy way to
> > determine, *before* trying to build it, whether a specific kernel
> > config is appropriate for a specific target. Can you think of an
> > easier way to do this than to scan the config for the "machine"
> > line?
> That's exactly what I proposed. You use config, before trying the
> build, to look up the machine specification for the config file. I
> sent you a 5 line patch to tinderbox.pl that does this by private
> email.
Here's a solution that works regadless of config(8) version, though I'm
not sure it qualifies as either easy or clean:
Index: tinderbox.pl
===================================================================
RCS file: /home/projcvs/projects/tinderbox/tinderbox.pl,v
retrieving revision 1.68
diff -u -r1.68 tinderbox.pl
--- tinderbox.pl 25 Aug 2009 17:28:14 -0000 1.68
+++ tinderbox.pl 22 Aug 2010 12:08:46 -0000
@@ -722,10 +722,29 @@
}
# Build additional kernels
+ kernel:
foreach my $kernel (sort(keys(%kernels))) {
if (! -f "$srcdir/sys/$machine/conf/$kernel") {
warning("no kernel config for $kernel");
- next;
+ next kernel;
+ }
+ # Hack: check that the config is appropriate for this target.
+ # If no "machine" declaration is present, assume that it is.
+ local *KERNCONF;
+ if (open(KERNCONF, "<", "$srcdir/sys/$machine/conf/$kernel")) {
+ while (<KERNCONF>) {
+ next unless m/^machine\s+(\w+(?:\s+\w+)?)\s*(?:\#.*)?$/;
+ if ($1 !~ m/^\Q$machine\E(\s+\Q$arch\E)?$/) {
+ warning("skipping $kernel");
+ close(KERNCONF);
+ next kernel;
+ }
+ last;
+ }
+ close(KERNCONF);
+ } else {
+ warning("$kernel: $!");
+ next kernel;
}
logstage("building $kernel kernel");
logenv();
It will break if the "machine" declaration ever moves into an included
file, since it does not follow include statements, but it will do for
now.
DES
--
Dag-Erling Smørgrav - des at des.no
More information about the freebsd-current
mailing list