lkml.org 
[lkml]   [2010]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [PATCH 2/2] tracing/recordmount.pl: use apropriate perl-constructs
From
Date
On Tue, 2010-01-05 at 19:27 +0100, Wolfram Sang wrote:
> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
> ---
> scripts/recordmcount.pl | 33 ++++++++++++---------------------
> 1 files changed, 12 insertions(+), 21 deletions(-)
>
> diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
> index 5de12c7..59b73b9 100755
> --- a/scripts/recordmcount.pl
> +++ b/scripts/recordmcount.pl
> @@ -136,13 +136,13 @@ my %text_sections = (
> ".text.unlikely" => 1,
> );
>
> -$objdump = "objdump" if ((length $objdump) == 0);
> -$objcopy = "objcopy" if ((length $objcopy) == 0);
> -$cc = "gcc" if ((length $cc) == 0);
> -$ld = "ld" if ((length $ld) == 0);
> -$nm = "nm" if ((length $nm) == 0);
> -$rm = "rm" if ((length $rm) == 0);
> -$mv = "mv" if ((length $mv) == 0);
> +$objdump ||= 'objdump';
> +$objcopy ||= 'objcopy';
> +$cc ||= 'gcc';
> +$ld ||= 'ld';
> +$nm ||= 'nm';
> +$rm ||= 'rm';
> +$mv ||= 'mv';

I purposely did not do it this way (I need to add a comment about this),
because most kernel developers are not perl programmers, and I wanted
this to be as easy as possible for a non-perl programmer to understand.

Even as a perl programmer it still looks funny to me with the:


$x ||= 'x';


So I will not accept this part.

>
> #print STDERR "running: $P '$arch' '$objdump' '$objcopy' '$cc' '$ld' " .
> # "'$nm' '$rm' '$mv' '$inputfile'\n";
> @@ -163,9 +163,8 @@ my $section_type; # Section header plus possible alignment command
> my $can_use_local = 0; # If we can use local function references
>
> # Shut up recordmcount if user has older objcopy
> -my $quiet_recordmcount = ".tmp_quiet_recordmcount";
> -my $print_warning = 1;
> -$print_warning = 0 if ( -f $quiet_recordmcount);
> +my $quiet_recordmcount = '.tmp_quiet_recordmcount';
> +my $print_warning = (! -f $quiet_recordmcount);

Again, this is just using perl obfuscation for most C programmers to
understand.

>
> ##
> # check_objcopy - whether objcopy supports --globalize-symbols
> @@ -194,12 +193,8 @@ sub check_objcopy
> }
> }
>
> -if ($arch eq "x86") {
> - if ($bits == 64) {
> - $arch = "x86_64";
> - } else {
> - $arch = "i386";
> - }
> +if ($arch eq 'x86') {
> + $arch = ($bits == 64) ? 'x86_64' : 'i386';
> }

This part I like. It keeps to C constructs.

>
> #
> @@ -476,11 +471,7 @@ while (<IN>) {
> $read_headers = 0;
>
> # Only record text sections that we know are safe
> - if (defined($text_sections{$1})) {
> - $read_function = 1;
> - } else {
> - $read_function = 0;
> - }
> + $read_function = defined($text_sections{$1});

I fine with this change too.

-- Steve

> # print out any recorded offsets
> update_funcs();
>




\
 
 \ /
  Last update: 2010-01-05 19:41    [W:0.097 / U:0.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site