Le 18/07/2019 à 12:20, Peter Maydell a écrit : > On Wed, 17 Jul 2019 at 15:55, Laurent Vivier <laur...@vivier.eu> wrote: >> >> The following changes since commit a1a4d49f60d2b899620ee2be4ebb991c4a90a026: >> >> Merge remote-tracking branch >> 'remotes/philmd-gitlab/tags/pflash-next-20190716' into staging (2019-07-16 >> 17:02:44 +0100) >> >> are available in the Git repository at: >> >> git://github.com/vivier/qemu.git tags/linux-user-for-4.1-pull-request >> >> for you to fetch changes up to ad0bcf5d59f120d546be7a2c3590afc66eea0b01: >> >> linux-user: check valid address in access_ok() (2019-07-17 09:02:51 +0200) >> >> ---------------------------------------------------------------- >> fix access_ok() to allow to run LTP on AARCH64, >> fix SIOCGSTAMP with 5.2 kernel headers, >> fix structure target_ucontext for MIPS >> >> --------------------------------------------------------------- > > This causes 'make check-tcg' to produce new warnings from > running the tests (x86-64 host): > > RUN tests for x86_64 > TEST test-mmap (default) on x86_64 > ERROR: ioctl(IOCGSTAMP_NEW): target=0x80108906 host=0x8906 > ERROR: ioctl(IOCGSTAMPNS_NEW): target=0x80108907 host=0x8907 > TEST sha1 on x86_64 > ERROR: ioctl(IOCGSTAMP_NEW): target=0x80108906 host=0x8906 > ERROR: ioctl(IOCGSTAMPNS_NEW): target=0x80108907 host=0x8907 > TEST linux-test on x86_64 > ERROR: ioctl(IOCGSTAMP_NEW): target=0x80108906 host=0x8906 > ERROR: ioctl(IOCGSTAMPNS_NEW): target=0x80108907 host=0x8907 > TEST testthread on x86_64 > ERROR: ioctl(IOCGSTAMP_NEW): target=0x80108906 host=0x8906 > ERROR: ioctl(IOCGSTAMPNS_NEW): target=0x80108907 host=0x8907 > TEST test-x86_64 on x86_64 > ERROR: ioctl(IOCGSTAMP_NEW): target=0x80108906 host=0x8906 > ERROR: ioctl(IOCGSTAMPNS_NEW): target=0x80108907 host=0x8907 > TEST test-mmap (4096 byte pages) on x86_64 > ERROR: ioctl(IOCGSTAMP_NEW): target=0x80108906 host=0x8906 > ERROR: ioctl(IOCGSTAMPNS_NEW): target=0x80108907 host=0x8907
It comes from linux-user/syscall.c: 6328 /* automatic consistency check if same arch */ 6329 #if (defined(__i386__) && defined(TARGET_I386) && defined(TARGET_ABI32)) || \ 6330 (defined(__x86_64__) && defined(TARGET_X86_64)) 6331 if (unlikely(ie->target_cmd != ie->host_cmd)) { 6332 fprintf(stderr, "ERROR: ioctl(%s): target=0x%x host=0x%x\n", 6333 ie->name, ie->target_cmd, ie->host_cmd); 6334 } 6335 #endif because of: + { TARGET_SIOCGSTAMP_OLD, SIOCGSTAMP, "IOCGSTAMP_OLD", IOC_R, \ + do_ioctl_SIOCGSTAMP }, + { TARGET_SIOCGSTAMPNS_OLD, SIOCGSTAMPNS, "IOCGSTAMPNS_OLD", IOC_R, \ + do_ioctl_SIOCGSTAMPNS }, + { TARGET_SIOCGSTAMP_NEW, SIOCGSTAMP, "IOCGSTAMP_NEW", IOC_R, \ + do_ioctl_SIOCGSTAMP }, + { TARGET_SIOCGSTAMPNS_NEW, SIOCGSTAMPNS, "IOCGSTAMPNS_NEW", IOC_R, \ + do_ioctl_SIOCGSTAMPNS }, As the host_cmd is not used, the simplest way to fix that is + { TARGET_SIOCGSTAMP_OLD, TARGET_SIOCGSTAMP_OLD, "IOCGSTAMP_OLD", IOC_R, \ + do_ioctl_SIOCGSTAMP }, + { TARGET_SIOCGSTAMPNS_OLD, TARGET_SIOCGSTAMPNS_OLD, "IOCGSTAMPNS_OLD", IOC_R, \ + do_ioctl_SIOCGSTAMPNS }, + { TARGET_SIOCGSTAMP_NEW, TARGET_SIOCGSTAMP_NEW, "IOCGSTAMP_NEW", IOC_R, \ + do_ioctl_SIOCGSTAMP }, + { TARGET_SIOCGSTAMPNS_NEW, TARGET_SIOCGSTAMPNS_NEW, "IOCGSTAMPNS_NEW", IOC_R, \ + do_ioctl_SIOCGSTAMPNS }, As SIOCGSTAMP_OLD and SIOCGSTAMP_NEW can be undefined on the host (and not needed because we always use SIOCGSTAMP and SIOCGSTAMPNS) Thanks, Laurent