[Crash-utility] Support for crash running on an ARM 32 bit host analyzing ARM 32 bit crash files? Looking unlikely. :(

Dave Anderson anderson at redhat.com
Sat Feb 8 15:35:20 UTC 2020



----- Original Message -----
> Hi Dave:
> 
> I gave it another shot this afternoon, knowing now that I should be able to
> confiure the build for this.
> 
> I'm having trouble getting configure (configure.c) to modify the Makefile for
> building on an X86 server a copy of  crash
> That's to run on a ARM (32) and debug ARM (32) crash dumps. Exec_tools wasn't
> a problem. I looked at configure.c
> And I saw a section supporting ARM64 but didn't see a non-64 bit ARM case. I
> can't access the build details right now
> To provide details.

I can't help with any cross-compile manipulations, so hopefully Robert's response
can help out.

But if you want to build a 32-bit x86 binary on an x86_64 host that can be used to 
analyze 32-bit ARM dumpfiles on the x86_64 host, it is as simple as:

  $ git clone git://github.com/crash-utility/crash.git 
  ...
  $ cd crash
  $ make target=ARM
  ...

However, it does require that your x86_64 host has the necessary
32-bit libraries.  For example, if the 32-bit ncurses library is not
installed on the host build machine, the build fails early on like this:

  $ make target=ARM
  ...
  configure: WARNING: no enhanced curses library found; disabling TUI
  checking for library containing tgetent... no
  configure: error: no termcap library found
  Makefile:8235: recipe for target 'configure-gdb' failed
  make[3]: *** [configure-gdb] Error 1
  Makefile:834: recipe for target 'all' failed
  make[2]: *** [all] Error 2

  crash build failed

  Makefile:229: recipe for target 'gdb_merge' failed
  make[1]: *** [gdb_merge] Error 1
  Makefile:224: recipe for target 'all' failed
  make: *** [all] Error 2
  $

So it essentially requires 32-bit gcc library, ncurses, zlib, snappy and lzo.
(snappy and lzo are only required if the compressed kdump was created using
either of those compression libraries).  

I have this old note re: building on an RHEL6 machine, which required redundant
rpm steps because  yum install didn't work as expected:

  $ yum install glibc-devel.i686 libgcc.i686
  $ yum install ncurses-libs.i686
  $ yum install ncurses.i686
  $ yum install zlib.i686
  $ yum install ncurses-5.7-3.20090208.el6.i686.rpm ncurses-devel-5.7-3.20090208.el6.i686.rpm
  $ yum install snappy-1.1.0-1.el6.i686.rpm snappy-devel-1.1.0-1.el6.i686.rpm
  $ yum install lzo-2.03-3.1.el6.i686.rpm lzo-devel-2.03-3.1.el6.i686.rpm lzo-minilzo-2.03-3.1.el6.i686.rpm
  $ rpm -ivh lzo-2.03-3.1.el6.i686.rpm lzo-devel-2.03-3.1.el6.i686.rpm lzo-minilzo-2.03-3.1.el6.i686.rpm --force
  $ rpm -ivh zlib-1.2.3-29.el6.i686.rpm zlib-devel-1.2.3-29.el6.i686.rpm zlib-static-1.2.3-29.el6.i686.rpm
         
Dave











> 
> Sometime I've been getting TARGET in the Makefile to change from 64 bit X86
> to ARM but think it's consistently using
> The native cc instead of the cross CC. I've tried changing the ENVIRONMENT
> variables like I did for exec_tools and for the
> Kernel but so far haven't seen any evidence of the configure program noticing
> that the host CC isn't to be used.
> 
> I'm using my Makefile to drive the building of ./configure in the
> ${CRASH-UTILITY} build directory.
> After that I'm running the .configure that it builds,
> And the having my Makefile evoke a make in the ${CRASH-UTILITY} build
> directory.
> 
> I've been trying to pass CROSS_COMPILE options and env variables at both the
> configure and make stages.
> Would likely save some time if you tell me how you have been doing it or
> point our a web page or doc on
> A suggest approach to building crash-utility on an X86 for running on an ARM.
> Like building Android, this
> Is likely a rather common goal.
> 
> -piet
> 
> -----Original Message-----
> From: crash-utility-bounces at redhat.com <crash-utility-bounces at redhat.com> On
> Behalf Of Dave Anderson
> Sent: Friday, February 7, 2020 6:20 AM
> To: Discussion list for crash utility usage, maintenance and development
> <crash-utility at redhat.com>
> Cc: piet delaney 2 <piet.delaney.2 at gmail.com>
> Subject: Re: [Crash-utility] Support for crash running on an ARM 32 bit host
> analyzing ARM 32 bit crash files? Looking unlikely. :(
> 
> 
> 
> ----- Original Message -----
> > 
> > 
> > Hi Dave:
> > 
> > I tried to build crash-utility to run on a 32 bit ARM to analyze 32
> > bit ARM crash dumps.
> > 
> > On looking at the Make file it appeared that ARM is supported.
> > 
> > #
> > # Supported targets: X86 ALPHA PPC IA64 PPC64 SPARC64 # TARGET and
> > GDB_CONF_FLAGS will be configured automatically by configure #
> > 
> > I was a bit disappointed. ☹
> > 
> > Any hope (in the future perhaps)?
> > 
> > -piet
> 
> I forgot that comment in the Makefile even existed -- it's also missing
> X86_64, ARM64, PPC64, S390 and S390X.
> 
> What happened when you tried to build a 32-bit ARM binary?  It's been
> "supported"
> for about 10 years now, but depends upon patches, fixes, and testing by
> external developers (outside Red Hat), given that we have no 32-bit ARM
> hardware to test on.
> 
> Dave
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list