diff options
Diffstat (limited to 'tools/ocamlsize')
| -rwxr-xr-x | tools/ocamlsize | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/tools/ocamlsize b/tools/ocamlsize deleted file mode 100755 index 659543d593..0000000000 --- a/tools/ocamlsize +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/perl - -foreach $f (@ARGV) { - open(FILE, $f) || die("Cannot open $f"); - seek(FILE, -16, 2); - $num_sections = do read_int(); - read(FILE, $magic, 12); - seek(FILE, -16 - 8 * $num_sections, 2); - @secname = (); - @seclength = (); - %length = (); - for ($i = 0; $i < $num_sections; $i++) { - read(FILE, $sec, 4); - $secname[$i] = $sec; - $seclength[$i] = do read_int(); - $length{$sec} = $seclength[$i]; - } - print $f, ":\n" if ($#ARGV > 0); - $path = - $length{'RNTM'} > 0 ? - do read_section('RNTM') : - "(default runtime)\n"; - printf ("\tcode: %-7d data: %-7d symbols: %-7d debug: %-7d\n", - $length{'CODE'}, $length{'DATA'}, - $length{'SYMB'}, $length{'DBUG'}); - printf ("\tmagic number: %s runtime system: %s", - $magic, $path); - close(FILE); -} - -sub read_int { - read(FILE, $buff, 4) == 4 || die("Truncated bytecode file $f"); - @int = unpack("C4", $buff); - return ($int[0] << 24) + ($int[1] << 16) + ($int[2] << 8) + $int[3]; -} - -sub read_section { - local ($sec) = @_; - local ($i, $ofs, $data); - for ($i = $num_sections - 1; $i >= 0; $i--) { - $ofs += $seclength[$i]; - if ($secname[$i] eq $sec) { - seek(FILE, -16 - 8 * $num_sections - $ofs, 2); - read(FILE, $data, $seclength[$i]); - return $data; - } - } - return ''; -} |
