Fixes in syscall numbers,
disable the build of binaries not needed for linux-user, update of qemu-binfmt-conf.sh and cleanup around is_error() -----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJbH6cOAAoJEPMMOL0/L748Qx0P/154ARvl8Rfa1JyxFp87vcWW N/WbtxsqKJupdaGSkdZQTOIBQ9Xf51z1EkKaD++oEgN2bYtw0CUQ5MVlfOw2uCoY 0SnSGrB5qHcEkoN5p+0CwOgQlSoGLNKRZKdkqFIOkXlQUe20DmKqWROB1N5Jpt7x ezsaMKKTu+qSd4nlcF2wyJxeW7v6ofJkOsVRZHktxOPBYqbcwV4rQV3Mg+3ZCumt 6NxvrRvdCLOPMqKJeMSXUWfAE194PiIwtJwwdPG8GbNpV/w/hfse0tAeUZASZoSd xBhS6Ne8T19lCpn62ENrtQj5l9zV5Dt1ZVFLMRGFrHDaZvnsr5UKLmr2yDCwvETN D023PHWfNaWt+fWoCSVQ8Kr3rB3UgTryEQTnuKiCg6MCj8hbbS90wn+26dlXo5XQ dBatlMuLsw6ASPyqPl3alPogS+ies6/sK52EEJU5KQJ3bxcFcETX5bBO1QEDAhJs Eo0nDyAjcTIXv7ICQQaVyJnb1QGw0TK7KBKq5wACkvHMqEc++Q8U54NiA8O/nsIu XCZlsO0pktJgT0EftS+alnygMAy158eO8u49egVWDDjBdKri6kgu9poljCKZGwTN CfAO0+kjfnrCFuCub0q4Ssp641rjeVF20uQ8O8bx4qqWTILD6PtKK5FiYHq2jYnN cBYRvu7w2N741o2LXiRD =oWiH -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-3.0-pull-request' into staging Fixes in syscall numbers, disable the build of binaries not needed for linux-user, update of qemu-binfmt-conf.sh and cleanup around is_error() # gpg: Signature made Tue 12 Jun 2018 11:57:18 BST # gpg: using RSA key F30C38BD3F2FBE3C # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" # gpg: aka "Laurent Vivier <laurent@vivier.eu>" # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier2/tags/linux-user-for-3.0-pull-request: linux-user/sparc64: Add inotify_rm_watch and tee syscalls linux-user/microblaze: Fix typo in accept4 syscall linux-user/hppa: Fix typo in mknodat syscall linux-user/alpha: Fix epoll syscalls qemu-binfmt-conf.sh: ignore the OS/ABI field linux-user: disable qemu-bridge-helper and socket_scm_helper build linux-user: Use is_error() to avoid warnings and make the code clearer linux-user: Export use is_error(), use it to avoid warnings Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
3b2a4d3901
2
Makefile
2
Makefile
@ -351,7 +351,7 @@ $(call set-vpath, $(SRC_PATH))
|
||||
|
||||
LIBS+=-lz $(LIBS_TOOLS)
|
||||
|
||||
HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF)
|
||||
HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = qemu-bridge-helper$(EXESUF)
|
||||
|
||||
ifdef BUILD_DOCS
|
||||
DOCS=qemu-doc.html qemu-doc.txt qemu.1 qemu-img.1 qemu-nbd.8 qemu-ga.8
|
||||
|
@ -343,9 +343,9 @@
|
||||
#define TARGET_NR_io_cancel 402
|
||||
#define TARGET_NR_exit_group 405
|
||||
#define TARGET_NR_lookup_dcookie 406
|
||||
#define TARGET_NR_sys_epoll_create 407
|
||||
#define TARGET_NR_sys_epoll_ctl 408
|
||||
#define TARGET_NR_sys_epoll_wait 409
|
||||
#define TARGET_NR_epoll_create 407
|
||||
#define TARGET_NR_epoll_ctl 408
|
||||
#define TARGET_NR_epoll_wait 409
|
||||
#define TARGET_NR_remap_file_pages 410
|
||||
#define TARGET_NR_set_tid_address 411
|
||||
#define TARGET_NR_restart_syscall 412
|
||||
|
@ -224,8 +224,9 @@ static int decompress_exec(
|
||||
ret = bprm->file->f_op->read(bprm->file, buf, LBUFSIZE, &fpos);
|
||||
if (ret <= 0)
|
||||
break;
|
||||
if (ret >= (unsigned long) -4096)
|
||||
if (is_error(ret)) {
|
||||
break;
|
||||
}
|
||||
len -= ret;
|
||||
|
||||
strm.next_in = buf;
|
||||
@ -283,8 +284,7 @@ calc_reloc(abi_ulong r, struct lib_info *p, int curid, int internalp)
|
||||
"in same module (%d != %d)\n",
|
||||
(unsigned) r, curid, id);
|
||||
goto failed;
|
||||
} else if ( ! p[id].loaded &&
|
||||
load_flat_shared_library(id, p) > (unsigned long) -4096) {
|
||||
} else if (!p[id].loaded && is_error(load_flat_shared_library(id, p))) {
|
||||
fprintf(stderr, "BINFMT_FLAT: failed to load library %d\n", id);
|
||||
goto failed;
|
||||
}
|
||||
@ -523,9 +523,10 @@ static int load_flat_file(struct linux_binprm * bprm,
|
||||
fpos = 0;
|
||||
result = bprm->file->f_op->read(bprm->file,
|
||||
(char *) textpos, text_len, &fpos);
|
||||
if (result < (unsigned long) -4096)
|
||||
if (!is_error(result)) {
|
||||
result = decompress_exec(bprm, text_len, (char *) datapos,
|
||||
data_len + (relocs * sizeof(unsigned long)), 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@ -693,8 +694,9 @@ static int load_flat_shared_library(int id, struct lib_info *libs)
|
||||
|
||||
res = prepare_binprm(&bprm);
|
||||
|
||||
if (res <= (unsigned long)-4096)
|
||||
if (!is_error(res)) {
|
||||
res = load_flat_file(&bprm, libs, id, NULL);
|
||||
}
|
||||
if (bprm.file) {
|
||||
allow_write_access(bprm.file);
|
||||
fput(bprm.file);
|
||||
@ -737,8 +739,9 @@ int load_flt_binary(struct linux_binprm *bprm, struct image_info *info)
|
||||
|
||||
|
||||
res = load_flat_file(bprm, libinfo, 0, &stack_len);
|
||||
if (res > (unsigned long)-4096)
|
||||
if (is_error(res)) {
|
||||
return res;
|
||||
}
|
||||
|
||||
/* Update data segment pointers for all libraries */
|
||||
for (i=0; i<MAX_SHARED_LIBS; i++) {
|
||||
|
@ -279,7 +279,7 @@
|
||||
#define TARGET_NR_ppoll 274
|
||||
#define TARGET_NR_openat 275
|
||||
#define TARGET_NR_mkdirat 276
|
||||
#define TARGET_NR_mknotat 277
|
||||
#define TARGET_NR_mknodat 277
|
||||
#define TARGET_NR_fchownat 278
|
||||
#define TARGET_NR_futimesat 279
|
||||
#define TARGET_NR_fstatat64 280
|
||||
|
@ -363,7 +363,7 @@
|
||||
#define TARGET_NR_shutdown 359 /* new */
|
||||
#define TARGET_NR_sendmsg 360 /* new */
|
||||
#define TARGET_NR_recvmsg 361 /* new */
|
||||
#define TARGET_NR_accept04 362 /* new */
|
||||
#define TARGET_NR_accept4 362 /* new */
|
||||
#define TARGET_NR_preadv 363 /* new */
|
||||
#define TARGET_NR_pwritev 364 /* new */
|
||||
#define TARGET_NR_rt_tgsigqueueinfo 365 /* new */
|
||||
|
@ -618,6 +618,11 @@ static inline void *lock_user_string(abi_ulong guest_addr)
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
static inline int is_error(abi_long ret)
|
||||
{
|
||||
return (abi_ulong)ret >= (abi_ulong)(-4096);
|
||||
}
|
||||
|
||||
/* Include target-specific struct and function definitions;
|
||||
* they may need access to the target-independent structures
|
||||
* above, so include them last.
|
||||
|
@ -154,7 +154,7 @@
|
||||
#define TARGET_NR_poll 153 /* Common */
|
||||
#define TARGET_NR_getdents64 154 /* Linux specific */
|
||||
#define TARGET_NR_fcntl64 155 /* Linux sparc32 Specific */
|
||||
/* #define TARGET_NR_getdirentries 156 SunOS Specific */
|
||||
#define TARGET_NR_inotify_rm_watch 156 /* Linux specific */
|
||||
#define TARGET_NR_statfs 157 /* Common */
|
||||
#define TARGET_NR_fstatfs 158 /* Common */
|
||||
#define TARGET_NR_umount 159 /* Common */
|
||||
@ -278,7 +278,7 @@
|
||||
#define TARGET_NR_mq_notify 277
|
||||
#define TARGET_NR_mq_getsetattr 278
|
||||
#define TARGET_NR_waitid 279
|
||||
/*#define TARGET_NR_sys_setaltroot 280 available (was setaltroot) */
|
||||
#define TARGET_NR_tee 280
|
||||
#define TARGET_NR_add_key 281
|
||||
#define TARGET_NR_request_key 282
|
||||
#define TARGET_NR_keyctl 283
|
||||
|
@ -1467,15 +1467,6 @@
|
||||
#ifdef TARGET_NR__sysctl
|
||||
{ TARGET_NR__sysctl, "_sysctl" , NULL, NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_sys_epoll_create
|
||||
{ TARGET_NR_sys_epoll_create, "sys_epoll_create" , NULL, NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_sys_epoll_ctl
|
||||
{ TARGET_NR_sys_epoll_ctl, "sys_epoll_ctl" , NULL, NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_sys_epoll_wait
|
||||
{ TARGET_NR_sys_epoll_wait, "sys_epoll_wait" , NULL, NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_sysfs
|
||||
{ TARGET_NR_sysfs, "sysfs" , NULL, NULL, NULL },
|
||||
#endif
|
||||
|
@ -906,11 +906,6 @@ static inline abi_long get_errno(abi_long ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline int is_error(abi_long ret)
|
||||
{
|
||||
return (abi_ulong)ret >= (abi_ulong)(-4096);
|
||||
}
|
||||
|
||||
const char *target_strerror(int err)
|
||||
{
|
||||
if (err == TARGET_ERESTARTSYS) {
|
||||
|
@ -7,15 +7,15 @@ mips mipsel mipsn32 mipsn32el mips64 mips64el \
|
||||
sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb microblaze microblazeel"
|
||||
|
||||
i386_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00'
|
||||
i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
i386_family=i386
|
||||
|
||||
i486_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00'
|
||||
i486_mask='\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
i486_mask='\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
i486_family=i386
|
||||
|
||||
alpha_magic='\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90'
|
||||
alpha_mask='\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
alpha_mask='\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
alpha_family=alpha
|
||||
|
||||
arm_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00'
|
||||
@ -27,11 +27,11 @@ armeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff
|
||||
armeb_family=armeb
|
||||
|
||||
sparc_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02'
|
||||
sparc_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
sparc_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
sparc_family=sparc
|
||||
|
||||
sparc32plus_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x12'
|
||||
sparc32plus_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
sparc32plus_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
sparc32plus_family=sparc
|
||||
|
||||
ppc_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14'
|
||||
@ -47,7 +47,7 @@ ppc64le_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\x
|
||||
ppc64le_family=ppcle
|
||||
|
||||
m68k_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04'
|
||||
m68k_mask='\xff\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
m68k_mask='\xff\xff\xff\xff\xff\xff\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
m68k_family=m68k
|
||||
|
||||
# FIXME: We could use the other endianness on a MIPS host.
|
||||
@ -77,15 +77,15 @@ mips64el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\
|
||||
mips64el_family=mips
|
||||
|
||||
sh4_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00'
|
||||
sh4_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
sh4_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
sh4_family=sh4
|
||||
|
||||
sh4eb_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a'
|
||||
sh4eb_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
sh4eb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
sh4eb_family=sh4
|
||||
|
||||
s390x_magic='\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16'
|
||||
s390x_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
s390x_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
s390x_family=s390x
|
||||
|
||||
aarch64_magic='\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00'
|
||||
|
@ -929,7 +929,7 @@ check-report.html: check-report.xml
|
||||
|
||||
# Other tests
|
||||
|
||||
QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
|
||||
QEMU_IOTESTS_HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = tests/qemu-iotests/socket_scm_helper$(EXESUF)
|
||||
|
||||
.PHONY: check-tests/qemu-iotests-quick.sh
|
||||
check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
|
||||
|
Loading…
Reference in New Issue
Block a user