From: Michael Brown Date: Wed, 27 Apr 2005 12:08:13 +0000 (+0000) Subject: Special handling for symbols of the form "xxx_end", to make table end X-Git-Tag: Eb.5.4.import~117 X-Git-Url: http://git.etherboot.org/people/xl0/gpxe.git/commitdiff_plain/c8fc1218908e690351e5690646a11450428c6223 Special handling for symbols of the form "xxx_end", to make table end markers appear before the symbols that immediately follow the table. --- diff --git a/src/util/sortobjdump.pl b/src/util/sortobjdump.pl index 7257161c..8ad7314b 100755 --- a/src/util/sortobjdump.pl +++ b/src/util/sortobjdump.pl @@ -17,14 +17,18 @@ while ( <> ) { print; ( my $index, my $section ) = ( $1, $2 ); $section_idx{$section} = sprintf ( "%02d", $index ); - } elsif ( /^([0-9a-fA-F]+)\s.*?\s([\.\*]\S+)\s+([0-9a-fA-F]+)\s/ ) { + } elsif ( /^([0-9a-fA-F]+)\s.*?\s([\.\*]\S+)\s+([0-9a-fA-F]+)\s+(\S+)/ ) { # It's a symbol line - store it in the hash, indexed by - # "
::" - ( my $value, my $section, my $size ) = ( $1, $2, $3 ); + # ":::". is "0" if + # the symbol name is of the form xxx_end, "1" otherwise; this is + # done so that table end markers show up before any other symbols + # with the same value. + ( my $value, my $section, my $size, my $name ) = ( $1, $2, $3, $4 ); die "Unrecognised section \"$section\"\n" unless exists $section_idx{$section}; my $section_idx = $section_idx{$section}; - my $key = $section_idx.":".$value.":".$size; + my $end = ( $name =~ /_end$/ ) ? "0" : "1"; + my $key = $section_idx.":".$value.":".$size.":".$end; $lines{$key} ||= ''; $lines{$key} .= $_; } else {