Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xen-tools 4.13.1 build failure



Fail for me too, on amd64 builds at least.


> Am 12.10.2020 um 17:53 schrieb Chavdar Ivanov <ci4ic4%gmail.com@localhost>:
> 
> Hi,
> Another xentools413 build failure. It has been failing for me the last
> two weeks or so, failing to build seabios, as follows:
> ....
> gmake[5]: Entering directory
> '/usr/pkgsrc/sysutils/xentools413/work/xen-4.13.1/tools/firmware'
> /usr/pkg/bin/gmake -C seabios-dir CC=gcc LD=ld PYTHON=python3.7
> EXTRAVERSION="-Xen" all;
> gmake[6]: Entering directory
> '/usr/pkgsrc/sysutils/xentools413/work/seabios-rel-1.12.1'
>  Linking out/rom.o
> ld -N -T out/romlayout32flat.lds out/rom16.strip.o
> out/rom32seg.strip.o out/code32flat.o -o out/rom.o
> ld: out/code32flat.o: in function `memmove':
> /usr/pkgsrc/sysutils/xentools413/work/seabios-rel-1.12.1/./src/string.c:206:
> undefined reference to `memcpy'
> ld: out/code32flat.o: in function `const_read_file':
> /usr/pkgsrc/sysutils/xentools413/work/seabios-rel-1.12.1/./src/romfile.c:116:
> undefined reference to `memcpy'
> ld: out/code32flat.o: in function `tpm_log_event':
> /usr/pkgsrc/sysutils/xentools413/work/seabios-rel-1.12.1/./src/tcgbios.c:131:
> undefined reference to `memcpy'
> ld: /usr/pkgsrc/sysutils/xentools413/work/seabios-rel-1.12.1/./src/tcgbios.c:134:
> undefined reference to `memcpy'
> ld: out/code32flat.o: in function `smm_save_and_copy':
> /usr/pkgsrc/sysutils/xentools413/work/seabios-rel-1.12.1/./src/fw/smm.c:148:
> undefined reference to `memcpy'
> ld: out/code32flat.o:/usr/pkgsrc/sysutils/xentools413/work/seabios-rel-1.12.1/./src/fw/smm.c:171:
> more undefined references to `memcpy' follow
> gmake[6]: *** [Makefile:186: out/rom.o] Error 1
> gmake[6]: Leaving directory
> '/usr/pkgsrc/sysutils/xentools413/work/seabios-rel-1.12.1'
> gmake[5]: *** [Makefile:138: subdir-all-seabios-dir] Error 2
> gmake[5]: Leaving directory
> '/usr/pkgsrc/sysutils/xentools413/work/xen-4.13.1/tools/firmware'
> gmake[4]: *** [/usr/pkgsrc/sysutils/xentools413/work/xen-4.13.1/tools/firmware/../../tools/Rules.mk:232:
> subdirs-all] Error 2
> gmake[4]: Leaving directory
> '/usr/pkgsrc/sysutils/xentools413/work/xen-4.13.1/tools/firmware'
> 
> ....
> 
> Wonder whether there is something to do with the switch to gcc9? If
> you try to build seabios on its own, it fails the same way.
> 

probably also correlated to:
> revision 1.8
> date: 2020-08-27 10:22:33 +0200;  author: bouyer;  state: Exp;  lines: +20 -6;  commitid: 6EkLpnMUbS7p4GlC;
> Always use system-supplied IOCTL definitions, remove xen-provided
> include files.
> Build seabios and ipxe, they're needed by qemu-xen (ipxe not strictly
> needed but it's convenient to have)
> Switch default device model from qemu-xen-traditional to qemu-xen
> (the former being unmaintained)
> Add upstream patch for XSA335 security issue.
> Bump PKGREVISION.
> 
but yes, it seems like the compile stage uses __builtin_memcpy which is nowadays inlined whereas the python / ldscript needs memcpy explicit.
./out/code32flat.o.objdump:198 .text.iomemcpy 00000046  00000000  00000000  00004182  2**0
./out/code32flat.o.objdump:00000000 l    d  .text.iomemcpy      00000000 .text.iomemcpy
./out/code32flat.o.objdump:00000000 l     F .text.iomemcpy      00000046 iomemcpy
./out/code32flat.o.objdump:00000000         *UND*       00000000 memcpy

after applying the following patch, seabios 1.14 (sorry for that) builds just fine.
—
--- src/string.c.orig   2020-10-24 08:24:32.543813339 +0200
+++ src/string.c        2020-10-24 08:25:00.984982804 +0200
@@ -152,9 +152,6 @@
 void *
 #undef memcpy
 memcpy(void *d1, const void *s1, size_t len)
-#if MODESEGMENT == 0
-#define memcpy __builtin_memcpy
-#endif
 {
     SET_SEG(ES, GET_SEG(SS));
     void *d = d1;
—

Cheers
	Oskar

Attachment: signature.asc
Description: Message signed with OpenPGP



Home | Main Index | Thread Index | Old Index