原因是由于memfd_create和glibc中的同名函数冲突了
按照这里的解决方案
创建一个名为“memfd_create.diff”的文件,然后将下列代码粘贴进去
diff -ru qemu-2.10.0-clean/util/memfd.c qemu-2.10.0/util/memfd.c
--- qemu-2.10.0-clean/util/memfd.c 2018-11-20 18:11:00.170271506 +0100
+++ qemu-2.10.0/util/memfd.c 2018-11-20 18:11:13.398423613 +0100
@@ -37,7 +37,7 @@
#include <sys/syscall.h>
#include <asm/unistd.h>
-static int memfd_create(const char *name, unsigned int flags)
+int memfd_create(const char *name, unsigned int flags)
{
#ifdef __NR_memfd_create
return syscall(__NR_memfd_create, name, flags);
将memfd_create.diff放在patches/目录下
然后修改build_qemu_support.sh,
patch -p1 <../patches/elfload.diff || exit 1
patch -p1 <../patches/cpu-exec.diff || exit 1
patch -p1 <../patches/syscall.diff || exit 1
在这后面添加一行
patch -p1 <../patches/memfd_create.diff || exit 1
然后再次运行build_qemu_support.sh即可