On Thu, Jun 1, 2023 at 4:58 AM Alex Bennée <alex.ben...@linaro.org> wrote:
>
>
> Brian Cain <bc...@quicinc.com> writes:
>
> >> -----Original Message-----
> >> From: Alex Bennée <alex.ben...@linaro.org>
> >> Sent: Wednesday, May 31, 2023 6:24 AM
> >> To: Daniel P.Berrangé <berra...@redhat.com>
> >> Cc: qemu-devel <qemu-devel@nongnu.org>; Michael Tokarev
> >> <m...@tls.msk.ru>; Erik Skultety <eskul...@redhat.com>; Brian Cain
> >> <bc...@quicinc.com>; Palmer Dabbelt <pal...@dabbelt.com>; Alistair Francis
> >> <alistair.fran...@wdc.com>; Bin Meng <bin.m...@windriver.com>
> >> Subject: How do you represent a host gcc and a cross gcc in lcitool?
> >>
> >> WARNING: This email originated from outside of Qualcomm. Please be wary of
> >> any links or attachments, and do not enable macros.
> >>
> >> Hi,
> >>
> >> While trying to convert the debian-riscv64-cross docker container to an
> >> lcitool based one I ran into a problem building QEMU. The configure step
> >> fails because despite cross compiling we still need a host compiler to
> >> build the hexagon codegen tooling.
> >
> > I thought we'd fixed this container definition so that we only
> > downloaded the hexagon toolchain instead? Do we really need a host
> > compiler for that container build?
> >
> > Or am I misunderstanding and you're referring to features required to
> > support idef parser? Does "hexagon codegen" refer to hexagon's TCG
> > generation or hexagon code itself (required by tests/tcg)?
>
> I think so:
>
> #
> #  Step 1
> #  We use a C program to create semantics_generated.pyinc
> #
> gen_semantics = executable(
>     'gen_semantics',
>     'gen_semantics.c',
>     native: true, build_by_default: false)
>
> semantics_generated = custom_target(
>     'semantics_generated.pyinc',
>     output: 'semantics_generated.pyinc',
>     command: [gen_semantics, '@OUTPUT@'],
> )
> hexagon_ss.add(semantics_generated)
>
>
> >
> >> After scratching my head for a while I discovered we did have host GCC's
> >> in our cross images despite there being no explicit request for them in
> >> the docker description. It turned out that the gcovr requirement pulled
> >> in lcov which itself had a dependency on gcc. However this is a bug:
> >>
> >>   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987818
> >>
> >> which has been fixed in bookworm (and of course sid which is the only
> >> way we can get a riscv64 build of QEMU at the moment). Hence my hacky
> >> attempts to get gcc via side effect of another package failed.
> >>
> >> Hence the question in $SUBJECT. I tried to add a mapping to lcitool for
> >> a pseudo hostgcc package:
> >>
> >> +  hostgcc:
> >> +    default: gcc
> >> +    pkg:
> >> +    MacOS:
> >> +    cross-policy-default: skip
> >>
> >> however this didn't work. Do we need a new mechanism for this or am I
> >> missing a way to do this?
> >>
> >> RiscV guys,
> >>
> >> It's clear that relying on Debian Sid for the QEMU cross build for RiscV
> >> is pretty flakey. Are you guys aware of any other distros that better
> >> support cross compiling to a riscv64 target or is Debian still the best
> >> bet? Could you be persuaded to build a binary docker image with the
> >> cross compilers and libraries required for a decent cross build as an
> >> alternative?

It's probably not very helpful, but I find Arch based distros to be
the best bet for this.

Are you still looking for a Docker image? I could try and get something working

Alistair

> >>
> >> Thanks,
> >>
> >> --
> >> Alex Bennée
> >> Virtualisation Tech Lead @ Linaro
>
>
> --
> Alex Bennée
> Virtualisation Tech Lead @ Linaro
>

Reply via email to