mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge tag 'pull-for-8.2-fixes-231123-1' of https://gitlab.com/stsquad/qemu into staging
various random fixes for 8.2 - replace fedora-i386 cross compiler with debian - update cirrus MacOS image to Ventura - merge debian-native and debian-amd64 docker images - fix compile of plugins on Windows mingw cross - add some doc notes on semihosting READC - add some doc notes on gdbstub - skip loading debug symbols if we have failed - enable arm-softmmu TCG tests - don't attempt to use native cross builds for linux-user - clean up registers gdb test case (ppc64/s390x) # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmVfXowACgkQ+9DbCVqe # KkQY6Af5AVjPG2aHmixvhTjxEx5dXAH3cGYsWbny3EByT2RijaTBBK/A4OB7RTVV # fr11kGpCkJDk4JPoUz4yTuw6Q+7WBmB0tJJ5wcGyC9cyCjI/PttSTJUC7hiikifw # dg1IVrJZX0ahOpUiDXAtDbeHK1/i95mDRtot40mnyv5HHYHlJKohKsUVtiQEWMeq # 0/X/M5Zq8oJ6wCkbw1nsCqkWpZa7eh4YcB9cGNf87dd0ZJ9M93CbjdSQlsugF2gB # pH+5ZGOj+L/zkbEKoaWJNwYzF4G6hJeLpqP2rLMqRfA5MM43wdd0dJ6gK0ylKeuR # Bo7jC1oEOcuLibZY40OhlOwLTMWiDg== # =ME/l # -----END PGP SIGNATURE----- # gpg: Signature made Thu 23 Nov 2023 09:15:40 EST # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * tag 'pull-for-8.2-fixes-231123-1' of https://gitlab.com/stsquad/qemu: tests/tcg: finesse the registers check for "hidden" regs configure: don't try a "native" cross for linux-user tests/tcg: enable semiconsole test for Arm tests/tcg: enable arm softmmu tests testing: move arm system tests into their own folder hw/core: skip loading debug on all failures docs/system: clarify limits of using gdbstub in system emulation docs/emulation: expand warning about semihosting tests/tcg: fixup Aarch64 semiconsole test target/nios2: Deprecate the Nios II architecture plugins: fix win plugin tests on cross compile tests/docker: merge debian-native with debian-amd64 .gitlab-ci.d/cirrus: Upgrade macOS to 13 (Ventura) tests/docker: replace fedora-i386 with debian-i686 Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
@@ -70,7 +70,7 @@ build-system-debian:
|
||||
needs:
|
||||
job: amd64-debian-container
|
||||
variables:
|
||||
IMAGE: debian-amd64
|
||||
IMAGE: debian
|
||||
CONFIGURE_ARGS: --with-coroutine=sigaltstack
|
||||
TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu
|
||||
sparc-softmmu xtensa-softmmu
|
||||
@@ -82,7 +82,7 @@ check-system-debian:
|
||||
- job: build-system-debian
|
||||
artifacts: true
|
||||
variables:
|
||||
IMAGE: debian-amd64
|
||||
IMAGE: debian
|
||||
MAKE_CHECK_ARGS: check
|
||||
|
||||
avocado-system-debian:
|
||||
@@ -91,7 +91,7 @@ avocado-system-debian:
|
||||
- job: build-system-debian
|
||||
artifacts: true
|
||||
variables:
|
||||
IMAGE: debian-amd64
|
||||
IMAGE: debian
|
||||
MAKE_CHECK_ARGS: check-avocado
|
||||
AVOCADO_TAGS: arch:arm arch:i386 arch:riscv64 arch:sh4 arch:sparc arch:xtensa
|
||||
|
||||
@@ -101,7 +101,7 @@ crash-test-debian:
|
||||
- job: build-system-debian
|
||||
artifacts: true
|
||||
variables:
|
||||
IMAGE: debian-amd64
|
||||
IMAGE: debian
|
||||
script:
|
||||
- cd build
|
||||
- make NINJA=":" check-venv
|
||||
@@ -589,7 +589,7 @@ build-tools-and-docs-debian:
|
||||
# when running on 'master' we use pre-existing container
|
||||
optional: true
|
||||
variables:
|
||||
IMAGE: debian-amd64
|
||||
IMAGE: debian
|
||||
MAKE_CHECK_ARGS: check-unit ctags TAGS cscope
|
||||
CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
|
||||
QEMU_JOB_PUBLISH: 1
|
||||
@@ -609,7 +609,7 @@ build-tools-and-docs-debian:
|
||||
# of what topic branch they're currently using
|
||||
pages:
|
||||
extends: .base_job_template
|
||||
image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:$QEMU_CI_CONTAINER_TAG
|
||||
image: $CI_REGISTRY_IMAGE/qemu/debian:$QEMU_CI_CONTAINER_TAG
|
||||
stage: test
|
||||
needs:
|
||||
- job: build-tools-and-docs-debian
|
||||
|
||||
@@ -59,13 +59,13 @@ x64-freebsd-13-build:
|
||||
INSTALL_COMMAND: pkg install -y
|
||||
TEST_TARGETS: check
|
||||
|
||||
aarch64-macos-12-base-build:
|
||||
aarch64-macos-13-base-build:
|
||||
extends: .cirrus_build_job
|
||||
variables:
|
||||
NAME: macos-12
|
||||
NAME: macos-13
|
||||
CIRRUS_VM_INSTANCE_TYPE: macos_instance
|
||||
CIRRUS_VM_IMAGE_SELECTOR: image
|
||||
CIRRUS_VM_IMAGE_NAME: ghcr.io/cirruslabs/macos-monterey-base:latest
|
||||
CIRRUS_VM_IMAGE_NAME: ghcr.io/cirruslabs/macos-ventura-base:latest
|
||||
CIRRUS_VM_CPUS: 12
|
||||
CIRRUS_VM_RAM: 24G
|
||||
UPDATE_COMMAND: brew update
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# THIS FILE WAS AUTO-GENERATED
|
||||
#
|
||||
# $ lcitool variables macos-12 qemu
|
||||
# $ lcitool variables macos-13 qemu
|
||||
#
|
||||
# https://gitlab.com/libvirt/libvirt-ci
|
||||
|
||||
@@ -46,6 +46,12 @@ loongarch-debian-cross-container:
|
||||
variables:
|
||||
NAME: debian-loongarch-cross
|
||||
|
||||
i686-debian-cross-container:
|
||||
extends: .container_job_template
|
||||
stage: containers
|
||||
variables:
|
||||
NAME: debian-i686-cross
|
||||
|
||||
mips64el-debian-cross-container:
|
||||
extends: .container_job_template
|
||||
stage: containers
|
||||
@@ -95,11 +101,6 @@ cris-fedora-cross-container:
|
||||
variables:
|
||||
NAME: fedora-cris-cross
|
||||
|
||||
i386-fedora-cross-container:
|
||||
extends: .container_job_template
|
||||
variables:
|
||||
NAME: fedora-i386-cross
|
||||
|
||||
win32-fedora-cross-container:
|
||||
extends: .container_job_template
|
||||
variables:
|
||||
|
||||
@@ -11,7 +11,7 @@ amd64-debian-container:
|
||||
extends: .container_job_template
|
||||
stage: containers
|
||||
variables:
|
||||
NAME: debian-amd64
|
||||
NAME: debian
|
||||
|
||||
amd64-ubuntu2204-container:
|
||||
extends: .container_job_template
|
||||
|
||||
@@ -37,25 +37,25 @@ cross-arm64-kvm-only:
|
||||
IMAGE: debian-arm64-cross
|
||||
EXTRA_CONFIGURE_OPTS: --disable-tcg --without-default-features
|
||||
|
||||
cross-i386-user:
|
||||
cross-i686-user:
|
||||
extends:
|
||||
- .cross_user_build_job
|
||||
- .cross_test_artifacts
|
||||
needs:
|
||||
job: i386-fedora-cross-container
|
||||
job: i686-debian-cross-container
|
||||
variables:
|
||||
IMAGE: fedora-i386-cross
|
||||
IMAGE: debian-i686-cross
|
||||
MAKE_CHECK_ARGS: check
|
||||
|
||||
cross-i386-tci:
|
||||
cross-i686-tci:
|
||||
extends:
|
||||
- .cross_accel_build_job
|
||||
- .cross_test_artifacts
|
||||
timeout: 60m
|
||||
needs:
|
||||
job: i386-fedora-cross-container
|
||||
job: i686-debian-cross-container
|
||||
variables:
|
||||
IMAGE: fedora-i386-cross
|
||||
IMAGE: debian-i686-cross
|
||||
ACCEL: tcg-interpreter
|
||||
EXTRA_CONFIGURE_OPTS: --target-list=i386-softmmu,i386-linux-user,aarch64-softmmu,aarch64-linux-user,ppc-softmmu,ppc-linux-user --disable-plugins
|
||||
MAKE_CHECK_ARGS: check check-tcg
|
||||
@@ -165,7 +165,7 @@ cross-win32-system:
|
||||
job: win32-fedora-cross-container
|
||||
variables:
|
||||
IMAGE: fedora-win32-cross
|
||||
EXTRA_CONFIGURE_OPTS: --enable-fdt=internal --disable-plugins
|
||||
EXTRA_CONFIGURE_OPTS: --enable-fdt=internal
|
||||
CROSS_SKIP_TARGETS: alpha-softmmu avr-softmmu hppa-softmmu m68k-softmmu
|
||||
microblazeel-softmmu mips64el-softmmu nios2-softmmu
|
||||
artifacts:
|
||||
|
||||
@@ -1307,8 +1307,8 @@ probe_target_compiler() {
|
||||
container_cross_cc=${container_cross_prefix}gcc
|
||||
;;
|
||||
i386)
|
||||
container_image=fedora-i386-cross
|
||||
container_cross_prefix=
|
||||
container_image=debian-i686-cross
|
||||
container_cross_prefix=i686-linux-gnu-
|
||||
;;
|
||||
loongarch64)
|
||||
container_image=debian-loongarch-cross
|
||||
@@ -1391,16 +1391,19 @@ probe_target_compiler() {
|
||||
done
|
||||
|
||||
try=cross
|
||||
case "$target_arch:$cpu" in
|
||||
aarch64_be:aarch64 | \
|
||||
armeb:arm | \
|
||||
i386:x86_64 | \
|
||||
mips*:mips64 | \
|
||||
ppc*:ppc64 | \
|
||||
sparc:sparc64 | \
|
||||
"$cpu:$cpu")
|
||||
try='native cross' ;;
|
||||
esac
|
||||
# For softmmu/roms we might be able to use the host compiler
|
||||
if [ "${1%softmmu}" != "$1" ]; then
|
||||
case "$target_arch:$cpu" in
|
||||
aarch64_be:aarch64 | \
|
||||
armeb:arm | \
|
||||
i386:x86_64 | \
|
||||
mips*:mips64 | \
|
||||
ppc*:ppc64 | \
|
||||
sparc:sparc64 | \
|
||||
"$cpu:$cpu")
|
||||
try='native cross' ;;
|
||||
esac
|
||||
fi
|
||||
eval "target_cflags=\${cross_cc_cflags_$target_arch}"
|
||||
for thistry in $try; do
|
||||
case $thistry in
|
||||
|
||||
@@ -49,7 +49,7 @@ all: $(SONAMES)
|
||||
$(CC) $(CFLAGS) $(PLUGIN_CFLAGS) -c -o $@ $<
|
||||
|
||||
ifeq ($(CONFIG_WIN32),y)
|
||||
lib%$(SO_SUFFIX): %.o win32_linker.o ../../plugins/qemu_plugin_api.lib
|
||||
lib%$(SO_SUFFIX): %.o win32_linker.o ../../plugins/libqemu_plugin_api.a
|
||||
$(CC) -shared -o $@ $^ $(LDLIBS)
|
||||
else ifeq ($(CONFIG_DARWIN),y)
|
||||
lib%$(SO_SUFFIX): %.o
|
||||
|
||||
@@ -236,6 +236,16 @@ it. Since all recent x86 hardware from the past >10 years is capable of the
|
||||
64-bit x86 extensions, a corresponding 64-bit OS should be used instead.
|
||||
|
||||
|
||||
System emulator CPUs
|
||||
--------------------
|
||||
|
||||
Nios II CPU (since 8.2)
|
||||
'''''''''''''''''''''''
|
||||
|
||||
The Nios II architecture is orphan. The ``nios2`` guest CPU support is
|
||||
deprecated and will be removed in a future version of QEMU.
|
||||
|
||||
|
||||
System emulator machines
|
||||
------------------------
|
||||
|
||||
@@ -254,6 +264,11 @@ These old machine types are quite neglected nowadays and thus might have
|
||||
various pitfalls with regards to live migration. Use a newer machine type
|
||||
instead.
|
||||
|
||||
Nios II ``10m50-ghrd`` and ``nios2-generic-nommu`` machines (since 8.2)
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
The Nios II architecture is orphan.
|
||||
|
||||
|
||||
Backend options
|
||||
---------------
|
||||
|
||||
@@ -129,8 +129,9 @@ causing most hypervisors to trap and fault on them.
|
||||
.. warning::
|
||||
Semihosting inherently bypasses any isolation there may be between
|
||||
the guest and the host. As a result a program using semihosting can
|
||||
happily trash your host system. You should only ever run trusted
|
||||
code with semihosting enabled.
|
||||
happily trash your host system. Some semihosting calls (e.g.
|
||||
``SYS_READC``) can block execution indefinitely. You should only
|
||||
ever run trusted code with semihosting enabled.
|
||||
|
||||
Redirection
|
||||
~~~~~~~~~~~
|
||||
|
||||
+12
-1
@@ -60,7 +60,7 @@ As TCG cannot track all memory accesses in user-mode there is no
|
||||
support for watchpoints.
|
||||
|
||||
Relocating code
|
||||
---------------
|
||||
===============
|
||||
|
||||
On modern kernels confusion can be caused by code being relocated by
|
||||
features such as address space layout randomisation. To avoid
|
||||
@@ -68,6 +68,17 @@ confusion when debugging such things you either need to update gdb's
|
||||
view of where things are in memory or perhaps more trivially disable
|
||||
ASLR when booting the system.
|
||||
|
||||
Debugging user-space in system emulation
|
||||
========================================
|
||||
|
||||
While it is technically possible to debug a user-space program running
|
||||
inside a system image, it does present challenges. Kernel preemption
|
||||
and execution mode changes between kernel and user mode can make it
|
||||
hard to follow what's going on. Unless you are specifically trying to
|
||||
debug some interaction between kernel and user-space you are better
|
||||
off running your guest program with gdb either in the guest or using
|
||||
a gdbserver exposed via a port to the outside world.
|
||||
|
||||
Debugging multicore machines
|
||||
============================
|
||||
|
||||
|
||||
+1
-1
@@ -505,7 +505,7 @@ ssize_t load_elf_ram_sym(const char *filename,
|
||||
clear_lsb, data_swab, as, load_rom, sym_cb);
|
||||
}
|
||||
|
||||
if (ret != ELF_LOAD_FAILED) {
|
||||
if (ret > 0) {
|
||||
debuginfo_report_elf(filename, fd, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -160,6 +160,7 @@ static void nios2_10m50_ghrd_class_init(ObjectClass *oc, void *data)
|
||||
mc->desc = "Altera 10M50 GHRD Nios II design";
|
||||
mc->init = nios2_10m50_ghrd_init;
|
||||
mc->is_default = true;
|
||||
mc->deprecation_reason = "Nios II architecture is deprecated";
|
||||
|
||||
object_class_property_add_bool(oc, "vic", get_vic, set_vic);
|
||||
object_class_property_set_description(oc, "vic",
|
||||
|
||||
@@ -95,6 +95,7 @@ static void nios2_generic_nommu_machine_init(struct MachineClass *mc)
|
||||
{
|
||||
mc->desc = "Generic NOMMU Nios II design";
|
||||
mc->init = nios2_generic_nommu_init;
|
||||
mc->deprecation_reason = "Nios II architecture is deprecated";
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("nios2-generic-nommu", nios2_generic_nommu_machine_init);
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ if get_option('plugins')
|
||||
# then use dlltool to assemble a delaylib.
|
||||
win32_qemu_plugin_api_lib = configure_file(
|
||||
input: win32_plugin_def,
|
||||
output: 'qemu_plugin_api.lib',
|
||||
output: 'libqemu_plugin_api.a',
|
||||
command: [dlltool, '--input-def', '@INPUT@',
|
||||
'--output-delaylib', '@OUTPUT@', '--dllname', 'qemu.exe']
|
||||
)
|
||||
|
||||
@@ -88,9 +88,6 @@ DOCKER_PARTIAL_IMAGES += debian-s390x-cross
|
||||
DOCKER_PARTIAL_IMAGES += fedora
|
||||
endif
|
||||
|
||||
# The native build should never use the registry
|
||||
docker-image-debian-native: DOCKER_REGISTRY=
|
||||
|
||||
# alpine has no adduser
|
||||
docker-image-alpine: NOUSER=1
|
||||
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
# THIS FILE WAS AUTO-GENERATED
|
||||
#
|
||||
# $ lcitool dockerfile --layers all --cross-arch i686 debian-11 qemu
|
||||
#
|
||||
# https://gitlab.com/libvirt/libvirt-ci
|
||||
|
||||
FROM docker.io/library/debian:11-slim
|
||||
|
||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
apt-get update && \
|
||||
apt-get install -y eatmydata && \
|
||||
eatmydata apt-get dist-upgrade -y && \
|
||||
eatmydata apt-get install --no-install-recommends -y \
|
||||
bash \
|
||||
bc \
|
||||
bison \
|
||||
bsdextrautils \
|
||||
bzip2 \
|
||||
ca-certificates \
|
||||
ccache \
|
||||
dbus \
|
||||
debianutils \
|
||||
diffutils \
|
||||
exuberant-ctags \
|
||||
findutils \
|
||||
flex \
|
||||
gcc \
|
||||
gcovr \
|
||||
gettext \
|
||||
git \
|
||||
hostname \
|
||||
libglib2.0-dev \
|
||||
libpcre2-dev \
|
||||
libsndio-dev \
|
||||
libspice-protocol-dev \
|
||||
llvm \
|
||||
locales \
|
||||
make \
|
||||
meson \
|
||||
mtools \
|
||||
ncat \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
pkgconf \
|
||||
python3 \
|
||||
python3-numpy \
|
||||
python3-opencv \
|
||||
python3-pillow \
|
||||
python3-pip \
|
||||
python3-setuptools \
|
||||
python3-sphinx \
|
||||
python3-sphinx-rtd-theme \
|
||||
python3-venv \
|
||||
python3-wheel \
|
||||
python3-yaml \
|
||||
rpm2cpio \
|
||||
sed \
|
||||
socat \
|
||||
sparse \
|
||||
tar \
|
||||
tesseract-ocr \
|
||||
tesseract-ocr-eng \
|
||||
xorriso \
|
||||
zstd && \
|
||||
eatmydata apt-get autoremove -y && \
|
||||
eatmydata apt-get autoclean -y && \
|
||||
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||
dpkg-reconfigure locales
|
||||
|
||||
RUN /usr/bin/pip3 install tomli
|
||||
|
||||
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||
ENV LANG "en_US.UTF-8"
|
||||
ENV MAKE "/usr/bin/make"
|
||||
ENV NINJA "/usr/bin/ninja"
|
||||
ENV PYTHON "/usr/bin/python3"
|
||||
|
||||
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||
dpkg --add-architecture i386 && \
|
||||
eatmydata apt-get update && \
|
||||
eatmydata apt-get dist-upgrade -y && \
|
||||
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
||||
eatmydata apt-get install --no-install-recommends -y \
|
||||
g++-i686-linux-gnu \
|
||||
gcc-i686-linux-gnu \
|
||||
libaio-dev:i386 \
|
||||
libasan6:i386 \
|
||||
libasound2-dev:i386 \
|
||||
libattr1-dev:i386 \
|
||||
libbpf-dev:i386 \
|
||||
libbrlapi-dev:i386 \
|
||||
libbz2-dev:i386 \
|
||||
libc6-dev:i386 \
|
||||
libcacard-dev:i386 \
|
||||
libcap-ng-dev:i386 \
|
||||
libcapstone-dev:i386 \
|
||||
libcmocka-dev:i386 \
|
||||
libcurl4-gnutls-dev:i386 \
|
||||
libdaxctl-dev:i386 \
|
||||
libdrm-dev:i386 \
|
||||
libepoxy-dev:i386 \
|
||||
libfdt-dev:i386 \
|
||||
libffi-dev:i386 \
|
||||
libfuse3-dev:i386 \
|
||||
libgbm-dev:i386 \
|
||||
libgcrypt20-dev:i386 \
|
||||
libglib2.0-dev:i386 \
|
||||
libglusterfs-dev:i386 \
|
||||
libgnutls28-dev:i386 \
|
||||
libgtk-3-dev:i386 \
|
||||
libibumad-dev:i386 \
|
||||
libibverbs-dev:i386 \
|
||||
libiscsi-dev:i386 \
|
||||
libjemalloc-dev:i386 \
|
||||
libjpeg62-turbo-dev:i386 \
|
||||
libjson-c-dev:i386 \
|
||||
liblttng-ust-dev:i386 \
|
||||
liblzo2-dev:i386 \
|
||||
libncursesw5-dev:i386 \
|
||||
libnfs-dev:i386 \
|
||||
libnuma-dev:i386 \
|
||||
libpam0g-dev:i386 \
|
||||
libpipewire-0.3-dev:i386 \
|
||||
libpixman-1-dev:i386 \
|
||||
libpng-dev:i386 \
|
||||
libpulse-dev:i386 \
|
||||
librbd-dev:i386 \
|
||||
librdmacm-dev:i386 \
|
||||
libsasl2-dev:i386 \
|
||||
libsdl2-dev:i386 \
|
||||
libsdl2-image-dev:i386 \
|
||||
libseccomp-dev:i386 \
|
||||
libselinux1-dev:i386 \
|
||||
libslirp-dev:i386 \
|
||||
libsnappy-dev:i386 \
|
||||
libspice-server-dev:i386 \
|
||||
libssh-gcrypt-dev:i386 \
|
||||
libsystemd-dev:i386 \
|
||||
libtasn1-6-dev:i386 \
|
||||
libubsan1:i386 \
|
||||
libudev-dev:i386 \
|
||||
liburing-dev:i386 \
|
||||
libusb-1.0-0-dev:i386 \
|
||||
libusbredirhost-dev:i386 \
|
||||
libvdeplug-dev:i386 \
|
||||
libvirglrenderer-dev:i386 \
|
||||
libvte-2.91-dev:i386 \
|
||||
libzstd-dev:i386 \
|
||||
nettle-dev:i386 \
|
||||
systemtap-sdt-dev:i386 \
|
||||
xfslibs-dev:i386 \
|
||||
zlib1g-dev:i386 && \
|
||||
eatmydata apt-get autoremove -y && \
|
||||
eatmydata apt-get autoclean -y && \
|
||||
mkdir -p /usr/local/share/meson/cross && \
|
||||
printf "[binaries]\n\
|
||||
c = '/usr/bin/i686-linux-gnu-gcc'\n\
|
||||
ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
|
||||
strip = '/usr/bin/i686-linux-gnu-strip'\n\
|
||||
pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
|
||||
\n\
|
||||
[host_machine]\n\
|
||||
system = 'linux'\n\
|
||||
cpu_family = 'x86'\n\
|
||||
cpu = 'i686'\n\
|
||||
endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \
|
||||
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
|
||||
mkdir -p /usr/libexec/ccache-wrappers && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-c++ && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-g++ && \
|
||||
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
|
||||
|
||||
ENV ABI "i686-linux-gnu"
|
||||
ENV MESON_OPTS "--cross-file=i686-linux-gnu"
|
||||
ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-linux-gnu-
|
||||
ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
ARG UID
|
||||
RUN if [ "${USER}" ]; then \
|
||||
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
|
||||
@@ -1,54 +0,0 @@
|
||||
#
|
||||
# Docker Debian Native
|
||||
#
|
||||
# This is intended to build QEMU on native host systems. Debian is
|
||||
# chosen due to the broadest range on supported host systems for QEMU.
|
||||
#
|
||||
# This docker target is based on the docker.io Debian Bullseye base
|
||||
# image rather than QEMU's base because we would otherwise confuse the
|
||||
# build grabbing stuff from the registry built for other
|
||||
# architectures.
|
||||
#
|
||||
FROM docker.io/library/debian:bullseye-slim
|
||||
MAINTAINER Alex Bennée <alex.bennee@linaro.org>
|
||||
|
||||
# Duplicate deb line as deb-src
|
||||
RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
|
||||
|
||||
# Install common build utilities
|
||||
RUN apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
|
||||
|
||||
RUN apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive eatmydata \
|
||||
apt build-dep -yy --arch-only qemu
|
||||
|
||||
RUN apt update && \
|
||||
DEBIAN_FRONTEND=noninteractive eatmydata \
|
||||
apt install -y --no-install-recommends \
|
||||
cscope \
|
||||
genisoimage \
|
||||
exuberant-ctags \
|
||||
global \
|
||||
libbz2-dev \
|
||||
liblzo2-dev \
|
||||
libgcrypt20-dev \
|
||||
libfdt-dev \
|
||||
librdmacm-dev \
|
||||
libsasl2-dev \
|
||||
libsnappy-dev \
|
||||
libvte-dev \
|
||||
netcat-openbsd \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
python3-numpy \
|
||||
python3-opencv \
|
||||
python3-venv
|
||||
|
||||
ENV QEMU_CONFIGURE_OPTS $QEMU_CONFIGURE_OPTS
|
||||
ENV DEF_TARGET_LIST "none"
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
ARG UID
|
||||
RUN if [ "${USER}" ]; then \
|
||||
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
|
||||
+5
-2
@@ -155,10 +155,13 @@ RUN DEBIAN_FRONTEND=noninteractive eatmydata \
|
||||
apt install -y --no-install-recommends \
|
||||
cscope\
|
||||
global\
|
||||
linux-headers-amd64
|
||||
linux-headers-generic
|
||||
RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap
|
||||
RUN cd /usr/src/netmap && git checkout v11.3
|
||||
RUN cd /usr/src/netmap/LINUX && ./configure --no-drivers --no-apps --kernel-dir=$(ls -d /usr/src/linux-headers-*-amd64) && make install
|
||||
RUN cd /usr/src/netmap/LINUX && \
|
||||
./configure --no-drivers --no-apps \
|
||||
--kernel-dir=$(ls -d /usr/src/linux-headers-*-$(dpkg --print-architecture)) \
|
||||
&& make install
|
||||
ENV QEMU_CONFIGURE_OPTS --enable-netmap
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
@@ -1,40 +0,0 @@
|
||||
FROM registry.fedoraproject.org/fedora:34
|
||||
|
||||
ENV PACKAGES \
|
||||
bison \
|
||||
bzip2 \
|
||||
ccache \
|
||||
diffutils \
|
||||
flex \
|
||||
findutils \
|
||||
gcc \
|
||||
git \
|
||||
libfdt-devel.i686 \
|
||||
libffi-devel.i686 \
|
||||
libselinux-devel.i686 \
|
||||
libtasn1-devel.i686 \
|
||||
libzstd-devel.i686 \
|
||||
make \
|
||||
meson \
|
||||
ninja-build \
|
||||
glib2-devel.i686 \
|
||||
glibc-devel.i686 \
|
||||
glibc-static.i686 \
|
||||
gnutls-devel.i686 \
|
||||
nettle-devel.i686 \
|
||||
pcre-devel.i686 \
|
||||
pixman-devel.i686 \
|
||||
python3-tomli \
|
||||
sysprof-capture-devel.i686 \
|
||||
zlib-devel.i686
|
||||
|
||||
ENV QEMU_CONFIGURE_OPTS --cpu=i386 --disable-vhost-user
|
||||
ENV PKG_CONFIG_LIBDIR /usr/lib/pkgconfig
|
||||
|
||||
RUN dnf update -y && dnf install -y $PACKAGES
|
||||
RUN rpm -q $PACKAGES | sort > /packages.txt
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
ARG UID
|
||||
RUN if [ "${USER}" ]; then \
|
||||
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user