Philippe Mathieu-Daudé <f4...@amsat.org> writes:
> 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? OK poor first choice for getting the system emulation patches working. I wonder if the other fedora compilers will be useful for us? > gcc-nios2-linux-gnu-7.1.1-3.fc27.i686.rpm > gcc-microblaze-linux-gnu-7.1.1-3.fc27.i686.rpm > gcc-tile-linux-gnu-7.1.1-3.fc27.i686.rpm > gcc-cris-linux-gnu-7.1.1-3.fc27.i686.rpm -- Alex Bennée