bare/devel: Add qemu-couverture support.

Add a build set and configuration to build a QEMU we can use for
coverage testing.
This commit is contained in:
Chris Johns 2018-05-01 11:58:43 +10:00
parent 10d3aaf467
commit 6ac3ed87d3
3 changed files with 109 additions and 10 deletions

View File

@ -0,0 +1,43 @@
#
# Qemu from git
#
%if %{release} == %{nil}
%define release 1
%endif
%include %{_configdir}/base.cfg
%include %{_configdir}/bare-config.cfg
#
# Couverture QEMU Version.
#
%define qemu_version e9299f7591c8ecf3389922f4e7672b6bc5deae71
%hash sha512 e9299f7591c8ecf3389922f4e7672b6bc5deae71.tar.gz b0479eefb8f067b97828b411b89c6b4ba4097477425a83b7ae439a3c0980c52cdbbbd2b7c85edb412ffe7f20b1822b65be008a989c815ceff72a493e551bbb78
#
# Couverture QEMU disables for this version.
#
%define qemu_disables --disable-virtfs --disable-gnutls --disable-docs
#
# Couverture QEMU architectures for this version.
#
%define qemu_archs arm-softmmu,i386-softmmu,lm32-softmmu,mips-softmmu,ppc-softmmu,sparc-softmmu
#
# Set Couverture-Qemu source from github.
#
%source set qemu https://github.com/AdaCore/qemu/archive/%{qemu_version}.tar.gz
#
# Patch to send halt signal to qemu-system-or32 process when RTEMS terminates
#
%patch add qemu %{rtems_http_git}/rtems-tools/plain/tools/qemu/0001-openrisc-terminate-qemu-process-upon-receiving-a-hal.patch
%hash sha256 0001-openrisc-terminate-qemu-process-upon-receiving-a-hal.patch 88cd5c9e6e2a6bab23bf049a6f4212ff00083b002b73dbe63b2fe9832717f19e
#
# The Qemu build instructions. We use 1.x.x Release 1.
#
%include %{_configdir}/qemu-1-1.cfg

View File

@ -0,0 +1,25 @@
#
# Build set for QEMU-Couverture
#
%define release 1
#
# Name of the package.
#
package: qemu-couverture-%{qemu_version}-%{_host}-%{release}
#
# A magic internal path that would break if changes in the defaults.mc
# macro file are made.
#
%define _internal_autotools_path %{_tmppath}/sb-%{_uid}/${SB_PREFIX_CLEAN}
devel/autotools-internal
devel/libiconv-1.14-1
devel/gettext-0.18.3.1-1
devel/libffi-3.0.13-1
devel/pixman-0.32.4-1
devel/glib-2.39.3-1
devel/dtc-1.4.1-1
devel/qemu-couverture-git-1

View File

@ -28,6 +28,44 @@ BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n)
#
%source set qemu http://wiki.qemu-project.org/download/qemu-%{qemu_version}.tar.bz2
#
# QEMU Disable component list.
#
# We are not interested in the VM use case for qemu and most of that
# functionality carries host platform baggage which complicates building on a
# range of host platforms.
#
# You can specialise before including this config file.
#
#
%define qemu_std_disables --disable-werror
%define qemu_std_disables %{qemu_std_disables} --disable-smartcard-nss
%define qemu_std_disables %{qemu_std_disables} --disable-tools
%define qemu_std_disables %{qemu_std_disables} --disable-pie
%define qemu_std_disables %{qemu_std_disables} --disable-vnc
%define qemu_std_disables %{qemu_std_disables} --disable-sdl
%define qemu_std_disables %{qemu_std_disables} --disable-gtk
%define qemu_std_disables %{qemu_std_disables} --disable-opengl
%define qemu_std_disables %{qemu_std_disables} --disable-netmap
%ifn %{defined qemu_disables}
%define qemu_disables %{nil}
%endif
%define qemu_disables %{qemu_std_disables} %{qemu_disables}
#
# QEMU Targets to build.
#
%if %{!defined qemu_archs} && %{!defined with_qemu_archs}
%define qemu_target_list %{nil}
%else
%if %{defined with_qemu_archs}
%define qemu_target_list --target-list=%{with_qemu_archs}
%else
%define qemu_target_list --target-list=%{qemu_archs}
%endif
%endif
#
# Prepare the source code.
#
@ -73,22 +111,15 @@ BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n)
PKG_CONFIG_PATH=$SYSROOT/lib/pkgconfig \
PKG_CONFIG_BUILD_TOP_DIR=$SB_TMPROOT \
%{_ld_library_path}=$SYSROOT/lib \
LDFLAGS="-Wl,-rpath -Wl,/$SB_PREFIX_CLEAN/lib ${VDE_LDFLAGS}" \
LDFLAGS="-Wl,-rpath -Wl,/$SB_PREFIX_CLEAN/lib -L$SYSROOT/lib ${VDE_LDFLAGS}" \
CFLAGS="${CFLAGS} ${VDE_CFLAGS}" \
../${source_dir_qemu}/configure \
--prefix=%{_prefix} \
${CROSS_PREFIX_OPTION} \
--make=%{__make} \
%{qemu_target_list} \
${VDE_CONFIG} \
--disable-smartcard-nss \
--disable-werror \
--disable-tools \
--disable-pie \
--disable-vnc \
--disable-sdl \
--disable-gtk \
--disable-opengl \
--disable-netmap
%{qemu_disables}
%{_ld_library_path}=$SYSROOT/lib \
%{__make} %{?_smp_mflags} all