Files
fail/bochs/bios/makesym.perl
hsc b70b6fb43a another directory rename: failstar -> fail
"failstar" sounds like a name for a cruise liner from the 80s.  As "*" isn't a
desirable part of directory names, just name the whole thing "fail/", the core
parts being stored in "fail/core/".

Additionally fixing two build system dependency issues:
 - missing jobserver -> protomessages dependency
 - broken bochs -> fail dependency (add_custom_target DEPENDS only allows plain
   file dependencies ... cmake for the win)


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@956 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-03-08 19:43:02 +00:00

44 lines
867 B
Perl
Executable File

#!/usr/bin/perl
#
# $Id$
#
# Read output file from as86 (e.g. rombios.txt) and write out a symbol
# table suitable for the Bochs debugger.
#
use strict;
use warnings;
my $WHERE_BEFORE_SYM_TABLE = 0;
my $WHERE_IN_SYM_TABLE = 1;
my $WHERE_AFTER_SYM_TABLE = 2;
my $where = $WHERE_BEFORE_SYM_TABLE;
while (<STDIN>) {
chop;
if ($where == $WHERE_BEFORE_SYM_TABLE && /^Symbols:/) {
$where = $WHERE_IN_SYM_TABLE;
} elsif ($where == $WHERE_IN_SYM_TABLE && /^$/) {
$where = $WHERE_AFTER_SYM_TABLE;
}
if ($where == $WHERE_IN_SYM_TABLE) {
my $name;
my $junk;
foreach my $f (split(/\s+/)) {
if ($f =~ /^[[:xdigit:]]{4,}$/) {
if (defined($name)) {
print '000f', lc($f), ' ', $name, "\n";
undef($name);
undef($junk);
next;
}
}
$name = $junk
if (defined($junk));
$junk = $f;
}
}
}
exit(0);