summaryrefslogtreecommitdiffstats
path: root/kernel/check_mar.pl
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/check_mar.pl')
-rwxr-xr-xkernel/check_mar.pl30
1 files changed, 30 insertions, 0 deletions
diff --git a/kernel/check_mar.pl b/kernel/check_mar.pl
new file mode 100755
index 000000000..556a0e442
--- /dev/null
+++ b/kernel/check_mar.pl
@@ -0,0 +1,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";
+}