qemu-discuss
[Top][All Lists]
Advanced

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

[Qemu-discuss] QEMU 4.0 built on Solaris 10 Sparc host


From: Michele Denber
Subject: [Qemu-discuss] QEMU 4.0 built on Solaris 10 Sparc host
Date: Thu, 20 Jun 2019 15:42:04 -0400
User-agent: Mozilla/5.0 (X11; SunOS sun4u; rv:52.0) Gecko/20100101 Thunderbird/52.0

I can announce that I have successfully built QEMU 4.0.0 in Solaris 10
on a Sun M3000 Sparc VII using gcc 7.3.0 and OpenCSW tools:

# cd /export/home/denber/qemu-4.0.0/
# mkdir build
# cd build
#
PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/sfw/lib/pkgconfig:/usr/lib/pkgconfig
# export PKG_CONFIG_PATH
#
PKG_CONFIG_LIBDIR=/opt/csw/lib/pkgconfig:/usr/local-save:/usr/local/lib/pkgconfig:/opt/sfw/lib/pkgconfig:/usr/lib/pkgconfig
# export PKG_CONFIG_LIBDIR
# /opt/csw/bin/bash ../configure --target-list=x86_64-softmmu
# gmake -j16

Notes:

1. PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR have to be set to prevent
complaints about gthread2.

2./usr/xpg4/bin has to come first in PATH to make sure we pick up the
POSIX stuff.

3. In /hw/usb/dev-mtp.c it wanted O_DIRECTORY and O_CLOEXEC. These come
from fcntl.h, but are not in Solaris' version.  I tried installing
fcntl-linux.h but that caused more problems than it solved.  So at the
top of dev-mtp.c I just added:

#include "/usr/include/fcntl.h"
#ifndef O_DIRECTORY
# define O_DIRECTORY        0200000
#endif
#ifndef O_CLOEXEC
# define O_CLOEXEC   02000000
#endif

4. Solaris 10 does not have timersub in ui/vnc.c, got it from
https://code.woboq.org/qt5/include/sys/time.h.html

5. Solaris 10 does not have  strnlen in migration/global_state.c, got it
from
https://android.googlesource.com/platform/bionic/+/ics-mr0/libc/string/strnlen.c

6. In hw/tpm/tpm_ioctl.h this enum was throwing all sorts of errors.  I
finally just commented it out.  It didn't seem to mind.

/* enum {
    PTM_GET_CAPABILITY     = _IOR('P', 0, ptm_cap),
    PTM_INIT               = _IOWR('P', 1, ptm_init),
    PTM_SHUTDOWN           = _IOR('P', 2, ptm_res),
    PTM_GET_TPMESTABLISHED = _IOR('P', 3, ptm_est),
    PTM_SET_LOCALITY       = _IOWR('P', 4, ptm_loc),
    PTM_HASH_START         = _IOR('P', 5, ptm_res),
    PTM_HASH_DATA          = _IOWR('P', 6, ptm_hdata),
    PTM_HASH_END           = _IOR('P', 7, ptm_res),
    PTM_CANCEL_TPM_CMD     = _IOR('P', 8, ptm_res),
    PTM_STORE_VOLATILE     = _IOR('P', 9, ptm_res),
    PTM_RESET_TPMESTABLISHED = _IOWR('P', 10, ptm_reset_est),
    PTM_GET_STATEBLOB      = _IOWR('P', 11, ptm_getstate),
    PTM_SET_STATEBLOB      = _IOWR('P', 12, ptm_setstate),
    PTM_STOP               = _IOR('P', 13, ptm_res),
    PTM_GET_CONFIG         = _IOR('P', 14, ptm_getconfig),
    PTM_SET_DATAFD         = _IOR('P', 15, ptm_res),
    PTM_SET_BUFFERSIZE     = _IOWR('P', 16, ptm_setbuffersize),
}; */

7. The ARM target also had a bunch of undefs but since I was only
interested in x86_64 anyway I just reconfigured for that.  Works fine.

8. One more thing - it configured without KVM.  This is unfortunate
because it runs really really slow.  Is there any way to provide KVM
support?  I don't know if this is a QEMU issue, or Solaris, or the Sparc
hardware.

            - Michele




reply via email to

[Prev in Thread] Current Thread [Next in Thread]