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: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
Date: Fri, 22 Jun 2018 17:33:34 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0

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?

Regards,

Phil.



reply via email to

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