On Wed, 31 Oct 2018 at 16:43, Christophe Lyon
Post by Christophe LyonPost by Max FilippovOn Fri, Oct 26, 2018 at 6:51 AM Christophe Lyon
Post by Christophe LyonPost by Max FilippovProbably the easiest way to get all xtensa toolchain parts correctly it
by using existing buildroot configuration. E.g. the following configuration
https://git.buildroot.net/buildroot/tree/configs/qemu_xtensa_lx60_nommu_defconfig
OK, thanks for your suggestion. I think I managed to build it.
Now, how/where can I run 'make check' for gcc?
I do not see the GCC build tree.
The gcc build tree is usually in the build/host-gcc-final in the buildroot
build tree. But that's gcc version selected in the buildroot, you probably
want a different version. Usually after the buildroot toolchain is ready I
build gcc separately using binutils and sysroot produced by the buildroot.
http://wiki.osll.ru/doku.php/etc:users:jcmvbkbc:gcc-xtensa-call0
Please note that you'd need to apply gcc part of the xtensa overlay to
your gcc source for it to correctly generate code for that configuration.
I've run the tests with the current gcc trunk and a lot of execution
tests related to TLS (which is expected) and exceptions (which I
didn't expect) are failing. I'm looking at it.
make qemu_xtensa_lx60_nommu_defconfig
make all
./output/host/bin/xtensa-buildroot-uclinux-uclibc-gcc (which is 7.3)
export TOOLCHAIN=$PWD/output
PATH=$TOOLCHAIN/host/bin:$PATH ..../gcc/configure [...]
I also built qemu from the branch you mentioned,
and used the "run it on linux-user QEMU" section in the wiki
I see many execution errors, now realizing that I didn't
do what you said above: "apply gcc part of the xtensa overlay".
But what is this? Do you mean the patches in buildroot/packages/gcc/8.2.0 ?
I tried to apply 0004-gcc-xtensa-fix-NAND-code-in-xtensa_expand_atomic.patch
but patch says it's already applied (I'm using GCC trunk)
And while writing this reply, I'm just realizing that buildroot builds
for uclinux-uclibc-gcc, while the wiki uses linux-uclibc :(
Does the wiki need an update wrt target name?
I re-ran the wiki instructions with --target=xtensa-buildroot-uclinux-uclibc
and while gcc/g++ results looks mostly OK, the libstdc++ ones only show:
Running ...f/trunk/libstdc++-v3/testsuite/libstdc++-abi/abi.exp ...
ERROR: could not compile testsuite_abi.cc
ERROR: tcl error sourcing.../trunk/libstdc++-v3/testsuite/libstdc++-abi/abi.exp.
Running.../trunk/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp ...
ERROR: could not compile testsuite_abi.cc
etc...
libstdc++.log show many instances of:
.../trunk/libstdc++-v3/testsuite/util/testsuite_abi.cc: In function
'symbols create_symbols(const char*)':^M
.../trunk/libstdc++-v3/testsuite/util/testsuite_abi.cc:565: note:
non-delegitimized UNSPEC 3 found in variable location^M
.../trunk/libstdc++-v3/testsuite/util/testsuite_abi.cc: In function
'void examine_symbol(const char*, const char*)':^M
.../trunk/libstdc++-v3/testsuite/util/testsuite_abi.cc:355: note:
non-delegitimized UNSPEC 3 found in variable location^M
ERROR: tcl error sourcing
.../trunk/libstdc++-v3/testsuite/libstdc++-abi/abi.exp.
ERROR: could not compile testsuite_abi.cc
while executing
"error "could not compile $f""
(procedure "v3-build_support" line 62)
invoked from within
"v3-build_support"
(file ".../trunk/libstdc++-v3/testsuite/libstdc++-abi/abi.exp" line 34)
invoked from within
"source .../trunk/libstdc++-v3/testsuite/libstdc++-abi/abi.exp"
("uplevel" body line 1)
invoked from within
"uplevel #0 source .../trunk/libstdc++-v3/testsuite/libstdc++-abi/abi.exp"
invoked from within
"catch "uplevel #0 source $test_file_name""
Do you know what the problem is in my setup? Or with GCC trunk?
Post by Christophe LyonPost by Max FilippovPost by Christophe LyonPost by Max FilippovAlso bFLT executable format is currently not supported for linux-user
https://github.com/OSLL/qemu-xtensa/commits/xtensa-bflt
qemu-xtensa built from this QEMU then may be registered as a binfmt
handler for bFLT executable images allowing to run gcc tests that want
to run target binaries.
Do you have the magic commands for this?
If you build QEMU from the link above you can use the following command
to register binfmt handler for bFLT binaries assuming that you've installed
sudo scripts/qemu-binfmt-conf.sh --qemu-path=$QEMU_PREFIX/bin --flat 'xtensa'
The --flat switch is not final, it will likely change before it's accepted to
the QEMU mainline.
--
Thanks.
-- Max