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 <tsimp...@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.