在 2021年01月12日 16:24, crash-utility-request(a)redhat.com 写道:
Date: Mon, 11 Jan 2021 18:47:41 +0100
From: Alexander Egorenkov <egorenar(a)linux.ibm.com>
To: lijiang <lijiang(a)redhat.com>, crash-utility(a)redhat.com,
egorenar-dev(a)posteo.net
Subject: Re: [Crash-utility] [PATCH v3 1/1] Support cross-compilation
Message-ID: <87ft37tlfm.fsf(a)oc8242746057.ibm.com>
Content-Type: text/plain
> After applied this patch, the cross build failed in Fedora as below:
>
> [root@hpe-apollo-cn99xx-15-vm-21 crash]# make CROSS_COMPILE=s390x-linux-
> ...
> rm -f ./libiberty.a pic/./libiberty.a
> s390x-linux-ar rc ./libiberty.a \
> ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./sha1.o ./alloca.o ./argv.o
./choose-temp.o ./concat.o ./cp-demint.o ./crc32.o ./dwarfnames.o ./dyn-string.o
./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o
./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o
./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./mkstemps.o ./objalloc.o
./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o
./safe-ctype.o ./simple-object.o ./simple-object-coff.o ./simple-object-elf.o
./simple-object-mach-o.o ./simple-object-xcoff.o ./sort.o ./spaces.o ./splay-tree.o
./stack-limit.o ./strerror.o ./strsignal.o ./timeval-utils.o ./unlink-if-ordinary.o
./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o
./setproctitle.o
> make[4]: s390x-linux-ar: Command not found
> make[4]: *** [Makefile:247: libiberty.a] Error 127
> make[3]: *** [Makefile:6996: all-libiberty] Error 2
> make[2]: *** [Makefile:835: all] Error 2
>
> crash build failed
>
> make[1]: *** [Makefile:281: gdb_merge] Error 1
> make: *** [Makefile:272: all] Error 2
> [root@hpe-apollo-cn99xx-15-vm-21 crash]#
>
>
> Can you help to check this patch again and do some coverage testing?
>
> Thanks.
> Lianbo
>
Hi Lianbo,
sorry for the late response, just came back from vacation.
No worry.
For testing i used buildroot because you not only need the whole
cross-compilation toolchain with linker, ar etc but also some libraries
compiled for the chosen target e.g. ncurses and zlib. buildroot
provides it all already. And since November buildroot supports 390x arch.
I have installed the whole cross-compilation toolchain in Fedora.
Or I missed something else? Could you please also verify this patch in Fedora?
I also tried with Debian x86 which provides s390x cross-toolchain but
it stopped with termcap library not
found :( It is even wore for Fedora 32. I used buildroot because i do not want to build
the whole cross
toolchain and libraries.
Some cross-toolchains are available in Fedora, for example:
On x86_64 machine:
[root@intel-s3ea2-09 crash]# rpm -qa|grep s390
binutils-s390x-linux-gnu-2.35.1-1.fc33.x86_64
gcc-s390x-linux-gnu-10.2.1-3.fc33.x86_64
And on other arches such as s390, ppc64le, Fedora has a similar cross-compilation
I can provide the buildroot package for crash-utility if necessary.
The buildroot is one of the scenarios for the cross-compilation. Maybe we could
think more
about this. What's your opinion?
Thanks.
Lianbo
Regards
Alex