summaryrefslogtreecommitdiffstats
path: root/kernel/check_mar.pl
blob: a26795a1306cd77312da19d1a1e6ea495ff45910 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl

use MDK::Common;

my $mar = '../mdk-stage1/mar/mar';
-x $mar or die "ERROR: Sorry, need $mar binary\n";

my %sanity_check = (
    hd => [ 
	qw(aic7xxx sym53c8xx initio), 
	if_(arch() !~ /ppc/, 'advansys'),
    ],
    network => [ 
	qw(3c59x eepro100 tulip via-rhine ne2k-pci 8139too), 
	if_(arch() !~ /ppc/, 'e100'), 
	if_(arch() !~ /ppc|ia64/, 'tlan'),
    ],
);

my $main_version = chomp_(cat_("all.kernels/.main"));

foreach (keys %sanity_check) {
    my $marfile = "all.modules/$main_version/${_}_modules.mar";
    -e $mar or die "ERROR: missing $marfile\n";

    my @l = map { /(\S+)\.o/ } `$mar -l $marfile`;
    my @pbs = difference2($sanity_check{$_}, \@l);

    @pbs and die "ERROR: sanity check should prove that " . join(" ", @pbs) . " be part of $marfile\n";
}