cpufreq: speedstep-smi: enable interrupts when waiting
[linux-drm-fsl-dcu.git] / arch / x86 / tools / calc_run_size.pl
1 #!/usr/bin/perl
2 #
3 # Calculate the amount of space needed to run the kernel, including room for
4 # the .bss and .brk sections.
5 #
6 # Usage:
7 # objdump -h a.out | perl calc_run_size.pl
8 use strict;
9
10 my $mem_size = 0;
11 my $file_offset = 0;
12
13 my $sections=" *[0-9]+ \.(?:bss|brk) +";
14 while (<>) {
15         if (/^$sections([0-9a-f]+) +(?:[0-9a-f]+ +){2}([0-9a-f]+)/) {
16                 my $size = hex($1);
17                 my $offset = hex($2);
18                 $mem_size += $size;
19                 if ($file_offset == 0) {
20                         $file_offset = $offset;
21                 } elsif ($file_offset != $offset) {
22                         # BFD linker shows the same file offset in ELF.
23                         # Gold linker shows them as consecutive.
24                         next if ($file_offset + $mem_size == $offset + $size);
25
26                         printf STDERR "file_offset: 0x%lx\n", $file_offset;
27                         printf STDERR "mem_size: 0x%lx\n", $mem_size;
28                         printf STDERR "offset: 0x%lx\n", $offset;
29                         printf STDERR "size: 0x%lx\n", $size;
30
31                         die ".bss and .brk are non-contiguous\n";
32                 }
33         }
34 }
35
36 if ($file_offset == 0) {
37         die "Never found .bss or .brk file offset\n";
38 }
39 printf("%d\n", $mem_size + $file_offset);