From c8fc1218908e690351e5690646a11450428c6223 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 27 Apr 2005 12:08:13 +0000 Subject: [PATCH] Special handling for symbols of the form "xxx_end", to make table end markers appear before the symbols that immediately follow the table. --- src/util/sortobjdump.pl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 {