[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v7 34/35] Hexagon build infrastructure
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v7 34/35] Hexagon build infrastructure |
Date: |
Fri, 22 Jan 2021 23:41:36 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 |
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
>> @@ -0,0 +1,187 @@
>> +##
>> +## Copyright(c) 2020-2021 Qualcomm Innovation Center, Inc. All Rights
>> Reserved.
>> +##
>> +## This program is free software; you can redistribute it and/or modify
>> +## it under the terms of the GNU General Public License as published by
>> +## the Free Software Foundation; either version 2 of the License, or
>> +## (at your option) any later version.
>> +##
>> +## This program is distributed in the hope that it will be useful,
>> +## but WITHOUT ANY WARRANTY; without even the implied warranty of
>> +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>> +## GNU General Public License for more details.
>> +##
>> +## You should have received a copy of the GNU General Public License
>> +## along with this program; if not, see <http://www.gnu.org/licenses/>.
>> +##
>> +
>> +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"
^~~~~~~~~~~~~~
It is late here, so enough testing for today. TBC ;)
BTW you should test your branch on gitlab-ci, I'm pretty sure
various jobs fail.
Regards,
Phil.
[PATCH v7 05/35] Hexagon (disas) disassembler, Taylor Simpson, 2021/01/19
[PATCH v7 35/35] Add Dockerfile for hexagon, Taylor Simpson, 2021/01/19
[PATCH v7 08/35] Hexagon (target/hexagon) GDB Stub, Taylor Simpson, 2021/01/19
[PATCH v7 14/35] Hexagon (target/hexagon) instruction printing, Taylor Simpson, 2021/01/19
[PATCH v7 15/35] Hexagon (target/hexagon/arch.[ch]) utility functions, Taylor Simpson, 2021/01/19