On 06/22/2018 03:45 PM, Max Filippov wrote: > On Fri, Jun 22, 2018 at 9:27 AM, Alex Bennée <alex.ben...@linaro.org> wrote: >> Max Filippov <jcmvb...@gmail.com> writes: >>> On Fri, Jun 22, 2018 at 7:02 AM, Philippe Mathieu-Daudé <f4...@amsat.org> >>> wrote: >>>> As of this commit: >>>> >>>> $ xtensa-linux-gnu-as -v >>>> GNU assembler version 2.29.1 (xtensa-linux-gnu) using BFD version >>>> version 2.29.1-1.fc27 >>>> >>>> $ xtensa-linux-gnu-gcc -v >>>> Target: xtensa-linux-gnu >>>> gcc version 7.2.1 20170915 (Red Hat Cross 7.2.1-1) (GCC) >>>> >>>> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >>>> --- >>>> tests/docker/dockerfiles/fedora-xtensa-cross.docker | 7 +++++++ >>>> 1 file changed, 7 insertions(+) >>>> create mode 100644 tests/docker/dockerfiles/fedora-xtensa-cross.docker >>>> >>>> diff --git a/tests/docker/dockerfiles/fedora-xtensa-cross.docker >>>> b/tests/docker/dockerfiles/fedora-xtensa-cross.docker >>>> new file mode 100644 >>>> index 0000000000..6f9521520c >>>> --- /dev/null >>>> +++ b/tests/docker/dockerfiles/fedora-xtensa-cross.docker >>>> @@ -0,0 +1,7 @@ >>>> +FROM fedora:latest >>>> +ENV PACKAGES \ >>>> + binutils-xtensa-linux-gnu \ >>>> + gcc-xtensa-linux-gnu >>> >>> Generic binutils and gcc for xtensa only (partially) make sense for >>> build testing. >> >> OK >> >>> Built binaries will not work. >> >> Why? > > The default toolchain does not generate code for any real xtensa CPU > configuration or for any configuration supported by the QEMU. > The xtensa configuration overlay for a specific CPU must be applied > to the toolchain source in order to build a toolchain capable of > producing code that would work on that CPU. > There's FSF xtensa CPU configuration in QEMU that is compatible with > very old (older than 2.19 IIRC) binutils.
While the Fedora binutils supports dual endianness, the compiler only works for big-endian: $ docker run --rm -it qemu:fedora-xtensa-cross xtensa-linux-gnu-objcopy xtensa-linux-gnu-objcopy: supported targets: elf32-xtensa-le elf32-xtensa-be elf32-little elf32-big $ docker run --rm -it qemu:fedora-xtensa-cross bash -c \ 'echo -e "__XTENSA_EL__\n__XTENSA_EB__" | \ xtensa-linux-gnu-gcc -E - | grep -v "\#"' __XTENSA_EL__ 1 > xtensa TCG tests (at least > some of them) are written for the dc232b xtensa CPU. The configuration I learned that the hard way :( I took the only big-endian CPU available: FSF, however - the linkscript expect the unavailable XTENSA_HAVE_BE definition, - core-isa.h misses the following definitions: #define XCHAL_KERNEL_VECOFS 0x00000200 /* XXX ??? */ #define XCHAL_INTLEVEL2_VECOFS 0x00000180 /* XXX ??? */ #define XCHAL_INTLEVEL3_VECOFS 0x00000240 /* XXX ??? */ #define XCHAL_INTLEVEL4_VECOFS 0x00000520 /* XXX ??? */ So this is a dead-end. > overlay for that CPU is available here: > > > https://github.com/jcmvbkbc/xtensa-toolchain-build/blob/master/overlays/xtensa_dc232b.tar.gz > > The following toolchain may be used to build working tests for xtensa: > > > https://github.com/foss-xtensa/toolchain/releases/download/2018.02/x86_64-2018.02-xtensa-dc232b-elf.tar.gz Thanks for the links, I'll continue with DC232B next week. Alex: Can you dequeue this patch please? Regards, Phil.