[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-discuss] QEMU 4.0 built on Solaris 10 Sparc host,
Michele Denber <=