Hi all,
 
 Am trying to use crash to analyse a dump file produced on an ARM-32.
 (Actually, it's on a Qemu-emulated ARM Vexpress-CA9 platform). Have
 succeeded in setting up and building a custom kernel with KEXEC, etc
 enabled, done the kexec of the dump kernel, triggered a crash (via
 /proc/sysrq-trigger).
 
 The system then 'reboots' successfully into the dump kernel (same
 zImage btw), and I can see and copy the /proc/vmcore kdump file. All
 fine there.
 
 The issue is in analysing the same using the crash utility on my
 x86_64 (Ubuntu 17.04) host. I realize:
 "...
 On an x86 or x86_64 host, a 32-bit x86 binary that can be used to analyze
      32-bit arm dumpfiles may be built by typing "make target=ARM".
 ..."
 
 But the build fails, pl see output below:
 
 git clone 
https://github.com/crash-utility/crash.git
 cd crash
 make target=ARM
 TARGET: ARM
  CRASH: 7.1.9++
    GDB: 7.6
 
 --snip--     <lots of o/p>
 
 gcc -m32   -static-libstdc++ -static-libgcc    \
 -o ../../crash ../../crashlib.a arm-tdep.o arm-linux-tdep.o
 glibc-tdep.o solib-svr4.o symfile-mem.o linux-tdep.o ser-base.o
 ser-unix.o ser-pipe.o ser-tcp.o  remote.o dcache.o tracepoint.o
 ax-general.o ax-gdb.o remote-fileio.o remote-notif.o  cli-dump.o
 cli-decode.o cli-script.o cli-cmds.o cli-setshow.o cli-logging.o
 cli-interp.o cli-utils.o mi-out.o mi-console.o mi-cmds.o
 mi-cmd-catch.o mi-cmd-env.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o
 mi-cmd-file.o mi-cmd-disas.o mi-symbol-cmds.o mi-cmd-target.o
 mi-cmd-info.o mi-interp.o mi-main.o mi-parse.o mi-getopt.o
 tui-command.o tui-data.o tui-disasm.o tui-file.o tui-hooks.o
 tui-interp.o tui-io.o tui-layout.o tui-out.o tui-regs.o tui-source.o
 tui-stack.o tui-win.o tui-windata.o tui-wingeneral.o tui-winsource.o
 tui.o python.o py-value.o py-prettyprint.o py-auto-load.o elfread.o
 stap-probe.o posix-hdep.o c-exp.o cp-name-parser.o ada-exp.o jv-exp.o
 f-exp.o go-exp.o m2-exp.o p-exp.o version.o annotate.o addrmap.o
 auto-load.o auxv.o agent.o bfd-target.o blockframe.o breakpoint.o
 break-catch-sig.o findvar.o regcache.o cleanups.o charset.o
 continuations.o corelow.o disasm.o dummy-frame.o dfp.o source.o
 value.o eval.o valops.o valarith.o valprint.o printcmd.o block.o
 symtab.o psymtab.o symfile.o symmisc.o linespec.o dictionary.o
 infcall.o infcmd.o infrun.o expprint.o environ.o stack.o thread.o
 exceptions.o filesystem.o inf-child.o interps.o minidebug.o main.o
 macrotab.o macrocmd.o macroexp.o macroscope.o mi-common.o event-loop.o
 event-top.o inf-loop.o completer.o gdbarch.o arch-utils.o gdbtypes.o
 gdb_bfd.o gdb_obstack.o osabi.o copying.o memattr.o mem-break.o
 target.o parse.o language.o buildsym.o findcmd.o std-regs.o signals.o
 exec.o reverse.o bcache.o objfiles.o observer.o minsyms.o maint.o
 demangle.o dbxread.o coffread.o coff-pe-read.o dwarf2read.o mipsread.o
 stabsread.o corefile.o dwarf2expr.o dwarf2loc.o dwarf2-frame.o
 dwarf2-frame-tailcall.o ada-lang.o c-lang.o d-lang.o f-lang.o
 objc-lang.o ada-tasks.o ada-varobj.o ui-out.o cli-out.o varobj.o vec.o
 go-lang.o go-valprint.o go-typeprint.o jv-lang.o jv-valprint.o
 jv-typeprint.o m2-lang.o opencl-lang.o p-lang.o p-typeprint.o
 p-valprint.o sentinel-frame.o complaints.o typeprint.o ada-typeprint.o
 c-typeprint.o f-typeprint.o m2-typeprint.o ada-valprint.o c-valprint.o
 cp-valprint.o d-valprint.o f-valprint.o m2-valprint.o serial.o
 mdebugread.o top.o utils.o ui-file.o user-regs.o frame.o
 frame-unwind.o doublest.o frame-base.o inline-frame.o gnu-v2-abi.o
 gnu-v3-abi.o cp-abi.o cp-support.o cp-namespace.o reggroups.o regset.o
 trad-frame.o tramp-frame.o solib.o solib-target.o prologue-value.o
 memory-map.o memrange.o xml-support.o xml-syscall.o xml-utils.o
 target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o
 inferior.o osdata.o gdb_usleep.o record.o record-full.o gcore.o
 gdb_vecs.o jit.o progspace.o skip.o probe.o common-utils.o buffer.o
 ptid.o gdb-dlfcn.o common-agent.o format.o registry.o btrace.o
 record-btrace.o inflow.o    init.o \
   ../readline/libreadline.a ../opcodes/libopcodes.a ../bfd/libbfd.a
 ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a    -ldl
 -lncurses -lm   ../libiberty/libiberty.a  build-gnulib/import/libgnu.a
   -lz -ldl -rdynamic
 /usr/bin/ld: cannot find -lz
 collect2: error: ld returned 1 exit status
 Makefile:1174: recipe for target 'gdb' failed
 make[3]: *** [gdb] Error 1
 Makefile:244: recipe for target 'rebuild' failed
 make[2]: *** [rebuild] Error 2
 Makefile:229: recipe for target 'gdb_merge' failed
 make[1]: *** [gdb_merge] Error 2
 Makefile:224: recipe for target 'all' failed
 make: *** [all] Error 2
 $
 
 Looks to me like it fails with
 
 /usr/bin/ld: cannot find -lz
 
 So, I did the usual checks; i have these 'libz' libs installed on the box:
 
 $ dpkg -l |grep "libz.*comp"
 ii  libzstd-dev                                     1.1.2-1             amd64        fast
lossless
 compression algorithm -- development files
 ii  libzstd1                                        1.1.2-1             amd64        fast
lossless
 compression algorithm
 $
 
 What package(s) do I need to install to overcome this issue? / what am i doing wrong?
 Any help appreciated, tia!
 
 
 Regards,
 Kaiwan. 
I can't get into any specifics w/respect to Ubuntu package installation, but 
since you are actually building a 32-bit x86 binary with target=ARM, you need to
have all of the required 32-bit i686 libraries installed.  So you will need to
install a 32-bit zlib library.  
Dave