[PATCH 1/3] source-builder/config: Add couverture-qemu general config & build instructions.

Chris Johns chrisj at rtems.org
Tue May 1 06:43:09 UTC 2018


On 01/05/2018 16:31, Cillian O'Donnell wrote:
> 
> 
> On Tue, 1 May 2018, 00:52 Chris Johns, <chrisj at rtems.org
> <mailto:chrisj at rtems.org>> wrote:
> 
>     On 28/04/2018 20:18, Cillian O'Donnell wrote:
>     > ---
>     >  source-builder/config/couverture-qemu-2-1.cfg | 104
>     ++++++++++++++++++++++++++
> 
>     Why a new file? Could the existing qemu config be used?
> 
> 
> We were thinking at the time that this would eventually replace the qemu that's
> there so it was best if it was self contained. They are identical in places so
> yes a lot of overlap.
> 

Looking at the results so far this looks likely but it depends on what is in the
main QEMU repo for other targets we would like good simulation for.

> 
>     I would prefer to have as few of the global configs as possible and share them
>     as much as possible.
> 
>     >  1 file changed, 104 insertions(+)
>     >  create mode 100644 source-builder/config/couverture-qemu-2-1.cfg
>     >
>     > diff --git a/source-builder/config/couverture-qemu-2-1.cfg
>     b/source-builder/config/couverture-qemu-2-1.cfg
>     > new file mode 100644
>     > index 0000000..b0a31bb
>     > --- /dev/null
>     > +++ b/source-builder/config/couverture-qemu-2-1.cfg
>     > @@ -0,0 +1,104 @@
>     > +#
>     > +# This configuration file configure's, make's and install's Couverture-QEMU.
>     > +#
>     > +
>     > +%if %{release} == %{nil}
>     > +  %define release 1
>     > +%endif
>     > +
>     > +#
>     > +# The description.
>     > +#
>     > +Name:      couverture-qemu-%{qemu_version}-%{_host}-%{release}
>     > +Summary:   Couverture-Qemu is a processor simulator with extra trace ability.
> 
>     I do not mind we have just the QEMU name and summary.
> 
>     > +Version:   %{qemu_version}
>     > +Release:   %{release}
>     > +URL:            https://github.com/AdaCore/qemu
>     > +BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n)
>     > +
>     > +#
>     > +# List of architectures to be built
>     > +#
>     > +%define qemu_archs arm-softmmu,i386-softmmu,lm32-softmmu,mips-softmmu
>     > +%define qemu_archs %{qemu_archs},ppc-softmmu,sparc-softmmu
> 
>     Why limit the archs?
> 
> 
> These are the ones I tested that produced same results with rtems tester to the
> existing qemu. I think there is also ones that aren't relevant to rtems.
> 

I have adopted these as well, it makes the build quicker. I found tricore did
not build.

> 
>     > +
>     > +#
>     > +# Prepare the source code.
>     > +#
>     > +%prep
>     > +  build_top=$(pwd)
>     > +
>     > +  source_dir_qemu="qemu-%{qemu_version}"
>     > +  %source setup qemu -n qemu-%{qemu_version}
> 
>     Why remove the -q?
> 
> 
> From our discussion last year
>>     3. What does the -q option do in the %prep section of the build, this
>>     option shows up in examples in the docs but there is no description of
>>     what it does?
>> 
>>     %source setup qemu -q -n qemu-%{qemu_version}
> 
> It is a spec file compatible option that is not used. You can remove the -q.
> 

Ah ok, thank you.

> 
>     > +  %patch setup qemu -p1
>     > +
>     > +  cd ${build_top}
>     > +
>     > +%build
>     > +  build_top=$(pwd)
>     > +
>     > +  %{build_directory}
>     > +
>     > +  mkdir -p ${build_dir}
>     > +  cd ${build_dir}
>     > +
>     > +  %if %{pkgconfig check vdeplug}
>     > +    VDE_CONFIG="--enable-vde"
>     > +    VDE_CFLAGS="%{pkgconfig cflags vdeplug}"
>     > +    VDE_LDFLAGS="%{pkgconfig ldflags vdeplug} %{pkgconfig libs vdeplug}"
>     > +  %endif
>     > +
>     > +  %{host_build_flags}
>     > +
>     > +  if test "%{_build}" != "%{_host}" ; then
>     > +    CROSS_PREFIX_OPTION="--cross-prefix=%{_host}-"
>     > +  fi
>     > +
>     > +  SYSROOT=$SB_TMPPREFIX
>     > +
>     > +  #
>     > +  # The --extra-cflags and --extra-ldflags do not work as expected.
>     > +  #
>     > +  # Hack warning: MSYS2 does not seem to convert the path to
>     > +  #               a shell path from Windows so we keep them
>     > +  #               separate and handle it in the pkgconfig tool.
>     > +  #
>     > +  PKG_CONFIG_DEFAULT_PATH=${PKG_CONFIG_PATH} \
>     > +  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}" \
>     > +  CFLAGS="${CFLAGS} ${VDE_CFLAGS}" \
>     > +  ../${source_dir_qemu}/configure \
>     > +    --prefix=%{_prefix} \
>     > +    ${CROSS_PREFIX_OPTION} \
>     > +    --make=%{__make} \
>     > +    --target-list=%{?with_qemu_archs:%{with_qemu_archs}}\
>     > +                  %{!?with_qemu_archs:%{qemu_archs}} \
>     > +    ${VDE_CONFIG} \
>     > +    --disable-smartcard-nss \
>     > +    --disable-tools \
>     > +    --disable-pie \
>     > +    --disable-vnc \
>     > +    --disable-sdl \
>     > +    --disable-gtk \
>     > +    --disable-opengl \
>     > +    --disable-netmap \
>     > +    --disable-werror \
> 
>     Some of these lines have white space at the end which seems wrong.
> 
>     > +    --disable-virtfs \
>     > +    --disable-docs
> 
>     Does the standard qemu build with these added?
> 
> 
> Not sure, didn't test that.
> 

I have been and I needed some more by the looks of things. I am struggling to
get MacOS and Windows to build. The supporting libraries need a number of fixes
so I am still not able to build either.

Chris



More information about the devel mailing list