qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image


From: Alex Bennée
Subject: Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
Date: Fri, 22 Jun 2018 22:55:32 +0100
User-agent: mu4e 1.1.0; emacs 26.1.50

Philippe Mathieu-Daudé <address@hidden> writes:

> On 06/22/2018 03:45 PM, Max Filippov wrote:
>> On Fri, Jun 22, 2018 at 9:27 AM, Alex Bennée <address@hidden> wrote:
>>> Max Filippov <address@hidden> writes:
>>>> On Fri, Jun 22, 2018 at 7:02 AM, Philippe Mathieu-Daudé <address@hidden> 
>>>> 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é <address@hidden>
>>>>> ---
>>>>>  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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]