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 _at__at_ -722,10 +722,29 _at__at_ } # 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.noReceived on Sun Aug 22 2010 - 10:10:50 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:06 UTC