lkml.org 
[lkml]   [2010]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] markup_oops.pl: add options to improve cross-sompilation environments
    From
    On Tue, Jan 26, 2010 at 3:38 PM, Hui Zhu <hui.zhu@windriver.com> wrote:
    > Américo Wang:
    >>
    >> On Tue, Jan 26, 2010 at 11:11 AM, Hui Zhu <hui.zhu@windriver.com> wrote:
    >>>
    >>> Sorry guys, the prev mail still have some format trouble.  I send a new
    >>> mail
    >>> for it.
    >>> +}
    >>> +
    >>> +if ($vmlinux_name ne "") {
    >>> +       $vmlinux_name = $ARGV[$#ARGV];
    >>> +}
    >>
    >> Why not using the Perl module 'Getopt' to do this?
    >>
    > Hi Américo,
    >
    > Thanks for remind me about it.  The following patch use Getopt.
    >
    > The markup_oops.pl have 3 troubles to support cross-compiler environment:
    > 1.  It use objdump directly.
    > 2.  It use modinfo to get the message of module.
    > 3.  It use hex function that cannot support 64-bit number in 32-bit arch.
    >
    > This patch add 3 options to markup_oops.pl:
    > 1. -c CROSS_COMPILE     Specify the prefix used for toolchain.
    > 2. -m MODULE_DIRNAME    Specify the module directory name.
    > 3. Change hex function to Math::BigInt->from_hex.
    >
    > After this patch, parse the x8664 oops in x86, we can:
    > cat amd64m | perl ~/kernel/tmp/m.pl -c /home/teawater/kernel/bin/x8664- -m
    > ./e.ko vmlinux
    >
    > Thanks,
    > Hui
    >
    > Signed-off-by: Hui Zhu <teawater@gmail.com>
    > Cc: Andrew Morton <akpm@linux-foundation.org>
    > Cc: Arjan van de Ven <arjan@linux.intel.com>
    > Cc: Sam Ravnborg <sam@ravnborg.org>
    > Cc: ozan@pardus.org.tr
    > Cc: Matthew Wilcox <willy@linux.intel.com>
    >
    > ---
    > scripts/markup_oops.pl |   45 +++++++++++++++++++++++++++++++++++----------
    > 1 file changed, 35 insertions(+), 10 deletions(-)
    >
    > --- a/scripts/markup_oops.pl
    > +++ b/scripts/markup_oops.pl
    > @@ -2,6 +2,7 @@
    >
    > use File::Basename;
    > use Math::BigInt;
    > +use Getopt::Long;
    >
    > # Copyright 2008, Intel Corporation
    > #
    > @@ -15,7 +16,17 @@ use Math::BigInt;
    > #       Arjan van de Ven <arjan@linux.intel.com>
    >
    >
    > -my $vmlinux_name = $ARGV[0];
    > +my $cross_compile = "";
    > +my $vmlinux_name = "";
    > +my $modulefile = "";
    > +
    > +# Get options
    > +Getopt::Long::GetOptions(
    > +       'cross_compile|c=s'     => \$cross_compile,


    Please make it "cross-compile", because underline is not common
    in command line, so "--cross_compile" is worse than "--cross-compile".


    > +       'modulefile|m=s'        => \$modulefile,


    "module" should be enough to express the meaning, I think.


    > +       'help|h'                => \&usage,
    > +);
    > +my $vmlinux_name = $ARGV[$#ARGV];
    > if (!defined($vmlinux_name)) {
    >        my $kerver = `uname -r`;
    >        chomp($kerver);
    > @@ -23,6 +34,7 @@ if (!defined($vmlinux_name)) {
    >        print "No vmlinux specified, assuming $vmlinux_name\n";
    > }
    > my $filename = $vmlinux_name;
    > +


    Adding this empty line probably is not what you really want.

    > #
    > # Step 1: Parse the oops to find the EIP value
    > #

    {snip}

    >
    > +sub usage {
    > +       print <<EOT;
    > +Usage:
    > +  dmesg | perl $0 [OPTION] [VMLINUX]
    > +
    > +OPTION:
    > +  -c, -cross_compile CROSS_COMPILE     Specify the prefix used for
    > toolchain.
    > +  -m, -modulefile MODULE_DIRNAME       Specify the module directory name.
    > +  -h, -help                            Help.
    > +EOT
    > +       exit;
    > +}
    > +

    GNU style is preferred here, please use "--foo" instead of "-foo".

    Thanks.
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2010-01-26 08:55    [W:0.036 / U:0.664 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site