qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH v7 34/35] Hexagon build infrastructure


From: Taylor Simpson
Subject: RE: [PATCH v7 34/35] Hexagon build infrastructure
Date: Wed, 27 Jan 2021 19:16:57 +0000


> -----Original Message-----
> From: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com> On
> Behalf Of Philippe Mathieu-Daudé
> Sent: Friday, January 22, 2021 4:42 PM
> To: Taylor Simpson <tsimpson@quicinc.com>; qemu-devel@nongnu.org;
> Paolo Bonzini <pbonzini@redhat.com>
> Cc: ale@rev.ng; alex.bennee@linaro.org; richard.henderson@linaro.org;
> laurent@vivier.eu; Brian Cain <bcain@quicinc.com>
> Subject: Re: [PATCH v7 34/35] Hexagon build infrastructure
>
> On 1/22/21 11:34 PM, Philippe Mathieu-Daudé wrote:
> > On 1/20/21 4:29 AM, Taylor Simpson wrote:
> >> Add file to default-configs
> >> Add hexagon to meson.build
> >> Add hexagon to target/meson.build
> >> Add target/hexagon/meson.build
> >> Change scripts/qemu-binfmt-conf.sh
> >>
> >> We can build a hexagon-linux-user target and run programs on the
> Hexagon
> >> scalar core.  With hexagon-linux-clang installed, "make check-tcg" will
> >> pass.
> >>
> >> Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
> >> ---
> >>  default-configs/targets/hexagon-linux-user.mak |   1 +
> >>  meson.build                                    |   1 +
> >>  scripts/qemu-binfmt-conf.sh                    |   6 +-
> >>  target/hexagon/meson.build                     | 187
> +++++++++++++++++++++++++
> >>  target/meson.build                             |   1 +
> >>  5 files changed, 195 insertions(+), 1 deletion(-)
> >>  create mode 100644 default-configs/targets/hexagon-linux-user.mak
> >>  create mode 100644 target/hexagon/meson.build
> > ...
> >
> >> +++ b/target/hexagon/meson.build
> >> +hexagon_ss = ss.source_set()
> >> +
> >> +prog_python = import('python').find_installation('python3')
> >> +
> >> +hex_common_py = 'hex_common.py'
> >> +attribs_def_h = meson.current_source_dir() / 'attribs_def.h'
> >> +gen_tcg_h = meson.current_source_dir() / 'gen_tcg.h'
> >> +
> >> +#
> >> +#  Step 1
> >> +#  We use a C program to create semantics_generated.pyinc
> >> +#
> >> +gen_semantics = executable('gen_semantics', 'gen_semantics.c')
> >> +
> >> +semantics = custom_target(
> >> +    'semantics_generated.pyinc',
> >> +    output: 'semantics_generated.pyinc',
> >> +    input: gen_semantics,
> >> +    command: ['@INPUT@', '@OUTPUT@'],
> >> +)
> >> +hexagon_ss.add(semantics)
> >
> > Is something missing here?
> >
> > $ make -j8
> > [316/1048] Generating semantics_generated.pyinc with a custom
> command
> > FAILED: target/hexagon/semantics_generated.pyinc
> > target/hexagon/gen_semantics
> target/hexagon/semantics_generated.pyinc
> > /bin/sh: 1: target/hexagon/gen_semantics: not found
> > ninja: build stopped: subcommand failed.
> >
> > $ make target/hexagon/semantics_generated.pyinc V=1
> > /usr/bin/ninja -v   -j1  target/hexagon/semantics_generated.pyinc | cat
> > [1/1] target/hexagon/gen_semantics
> target/hexagon/semantics_generated.pyinc
> > FAILED: target/hexagon/semantics_generated.pyinc
> > target/hexagon/gen_semantics
> target/hexagon/semantics_generated.pyinc
> > /bin/sh: 1: target/hexagon/gen_semantics: not found
> > ninja: build stopped: subcommand failed.
> > make: *** [Makefile:172: run-ninja] Error 1
> >
> > OK, I'm cross-compiling, target/hexagon/gen_semantics has been
> generated
> > but with as target, and we want it linked for the host...
>
> So I compiled it manually using:
>
> $ gcc -o target/hexagon/gen_semantics
> ~/source/qemu/target/hexagon/gen_semantics.c
>
> Then same story:
>
> [14/68] Generating iset.py with a custom command
> FAILED: target/hexagon/iset.py
> target/hexagon/gen_dectree_import target/hexagon/iset.py
> /bin/sh: 1: target/hexagon/gen_dectree_import: not found
> ninja: build stopped: subcommand failed.
>
> $ gcc -o target/hexagon/gen_dectree_import
> ~/source/qemu/target/hexagon/gen_dectree_import.c
> target/hexagon/gen_dectree_import.c:24:10: fatal error: qemu/osdep.h: No
> such file or directory
>  #include "qemu/osdep.h"
>           ^~~~~~~~~~~~~~

I'm able to reproduce and fix these problems by building with 
debian-armel-cross.  The solution is
- Add "native: true" to the executable functions
- Don't include "qemu/osdep.h", use the std header files instead.

I also see the 32-bit printf formatting errors you mentioned in this build.

These fixes will be included in the next iteration of the series.

> BTW you should test your branch on gitlab-ci, I'm pretty sure
> various jobs fail.

I'll look into that as well.

Thanks,
Taylor


reply via email to

[Prev in Thread] Current Thread [Next in Thread]