All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
@ 2018-06-22 14:02 Philippe Mathieu-Daudé
  2018-06-22 14:23 ` Daniel P. Berrangé
  2018-06-22 15:54 ` Max Filippov
  0 siblings, 2 replies; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-06-22 14:02 UTC (permalink / raw)
  To: Alex Bennée, Fam Zheng, Max Filippov
  Cc: Philippe Mathieu-Daudé, qemu-devel

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é <f4bug@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
+
+RUN dnf install -y $PACKAGES
+RUN rpm -q $PACKAGES | sort > /packages.txt
-- 
2.18.0.rc2

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
  2018-06-22 14:02 [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image Philippe Mathieu-Daudé
@ 2018-06-22 14:23 ` Daniel P. Berrangé
  2018-06-22 14:33   ` Philippe Mathieu-Daudé
  2018-06-22 15:54 ` Max Filippov
  1 sibling, 1 reply; 9+ messages in thread
From: Daniel P. Berrangé @ 2018-06-22 14:23 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Alex Bennée, Fam Zheng, Max Filippov, qemu-devel

On Fri, Jun 22, 2018 at 11:02:23AM -0300, Philippe Mathieu-Daudé 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é <f4bug@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

IIRC, we decided using ':latest' is not a good idea because its meaning
will change over time and lead to inconsistent results for devs. We saw
this before when patchew reported failure on fedora while developers saw
nothing, due to patchew having cached a ":latest" image which was different.

> +ENV PACKAGES \
> +    binutils-xtensa-linux-gnu \
> +    gcc-xtensa-linux-gnu
> +
> +RUN dnf install -y $PACKAGES
> +RUN rpm -q $PACKAGES | sort > /packages.txt


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
  2018-06-22 14:23 ` Daniel P. Berrangé
@ 2018-06-22 14:33   ` Philippe Mathieu-Daudé
  2018-06-22 15:06     ` Alex Bennée
  0 siblings, 1 reply; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-06-22 14:33 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Alex Bennée, Fam Zheng, Max Filippov, qemu-devel

On 06/22/2018 11:23 AM, Daniel P. Berrangé wrote:
> On Fri, Jun 22, 2018 at 11:02:23AM -0300, Philippe Mathieu-Daudé 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é <f4bug@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
> 
> IIRC, we decided using ':latest' is not a good idea because its meaning
> will change over time and lead to inconsistent results for devs. We saw
> this before when patchew reported failure on fedora while developers saw
> nothing, due to patchew having cached a ":latest" image which was different.

I totally agree with you :)

"FROM fedora:28" works.

> 
>> +ENV PACKAGES \
>> +    binutils-xtensa-linux-gnu \
>> +    gcc-xtensa-linux-gnu
>> +
>> +RUN dnf install -y $PACKAGES
>> +RUN rpm -q $PACKAGES | sort > /packages.txt
> 
> 
> Regards,
> Daniel
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
  2018-06-22 14:33   ` Philippe Mathieu-Daudé
@ 2018-06-22 15:06     ` Alex Bennée
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Bennée @ 2018-06-22 15:06 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Daniel P. Berrangé, Fam Zheng, Max Filippov, qemu-devel


Philippe Mathieu-Daudé <f4bug@amsat.org> writes:

> On 06/22/2018 11:23 AM, Daniel P. Berrangé wrote:
>> On Fri, Jun 22, 2018 at 11:02:23AM -0300, Philippe Mathieu-Daudé 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é <f4bug@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
>>
>> IIRC, we decided using ':latest' is not a good idea because its meaning
>> will change over time and lead to inconsistent results for devs. We saw
>> this before when patchew reported failure on fedora while developers saw
>> nothing, due to patchew having cached a ":latest" image which was different.
>
> I totally agree with you :)
>
> "FROM fedora:28" works.

Queued with the fedora:28 fix

>
>>
>>> +ENV PACKAGES \
>>> +    binutils-xtensa-linux-gnu \
>>> +    gcc-xtensa-linux-gnu
>>> +
>>> +RUN dnf install -y $PACKAGES
>>> +RUN rpm -q $PACKAGES | sort > /packages.txt
>>
>>
>> Regards,
>> Daniel
>>


--
Alex Bennée

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
  2018-06-22 14:02 [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image Philippe Mathieu-Daudé
  2018-06-22 14:23 ` Daniel P. Berrangé
@ 2018-06-22 15:54 ` Max Filippov
  2018-06-22 16:27   ` Alex Bennée
  1 sibling, 1 reply; 9+ messages in thread
From: Max Filippov @ 2018-06-22 15:54 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: Alex Bennée, Fam Zheng, qemu-devel

On Fri, Jun 22, 2018 at 7:02 AM, Philippe Mathieu-Daudé <f4bug@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é <f4bug@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.
Built binaries will not work.

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
  2018-06-22 15:54 ` Max Filippov
@ 2018-06-22 16:27   ` Alex Bennée
  2018-06-22 18:45     ` Max Filippov
  0 siblings, 1 reply; 9+ messages in thread
From: Alex Bennée @ 2018-06-22 16:27 UTC (permalink / raw)
  To: Max Filippov; +Cc: Philippe Mathieu-Daudé, Fam Zheng, qemu-devel


Max Filippov <jcmvbkbc@gmail.com> writes:

> On Fri, Jun 22, 2018 at 7:02 AM, Philippe Mathieu-Daudé <f4bug@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é <f4bug@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?

--
Alex Bennée

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
  2018-06-22 16:27   ` Alex Bennée
@ 2018-06-22 18:45     ` Max Filippov
  2018-06-22 20:33       ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 9+ messages in thread
From: Max Filippov @ 2018-06-22 18:45 UTC (permalink / raw)
  To: Alex Bennée; +Cc: Philippe Mathieu-Daudé, Fam Zheng, qemu-devel

On Fri, Jun 22, 2018 at 9:27 AM, Alex Bennée <alex.bennee@linaro.org> wrote:
> Max Filippov <jcmvbkbc@gmail.com> writes:
>> On Fri, Jun 22, 2018 at 7:02 AM, Philippe Mathieu-Daudé <f4bug@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é <f4bug@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. xtensa TCG tests (at least
some of them) are written for the dc232b xtensa CPU. The configuration
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.
-- Max

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
  2018-06-22 18:45     ` Max Filippov
@ 2018-06-22 20:33       ` Philippe Mathieu-Daudé
  2018-06-22 21:55         ` Alex Bennée
  0 siblings, 1 reply; 9+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-06-22 20:33 UTC (permalink / raw)
  To: Max Filippov, Alex Bennée; +Cc: Fam Zheng, qemu-devel

On 06/22/2018 03:45 PM, Max Filippov wrote:
> On Fri, Jun 22, 2018 at 9:27 AM, Alex Bennée <alex.bennee@linaro.org> wrote:
>> Max Filippov <jcmvbkbc@gmail.com> writes:
>>> On Fri, Jun 22, 2018 at 7:02 AM, Philippe Mathieu-Daudé <f4bug@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é <f4bug@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.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image
  2018-06-22 20:33       ` Philippe Mathieu-Daudé
@ 2018-06-22 21:55         ` Alex Bennée
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Bennée @ 2018-06-22 21:55 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: Max Filippov, Fam Zheng, qemu-devel


Philippe Mathieu-Daudé <f4bug@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.bennee@linaro.org> wrote:
>>> Max Filippov <jcmvbkbc@gmail.com> writes:
>>>> On Fri, Jun 22, 2018 at 7:02 AM, Philippe Mathieu-Daudé <f4bug@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é <f4bug@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

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-06-22 21:55 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-22 14:02 [Qemu-devel] [RFC PATCH] docker: Add fedora-xtensa-cross image Philippe Mathieu-Daudé
2018-06-22 14:23 ` Daniel P. Berrangé
2018-06-22 14:33   ` Philippe Mathieu-Daudé
2018-06-22 15:06     ` Alex Bennée
2018-06-22 15:54 ` Max Filippov
2018-06-22 16:27   ` Alex Bennée
2018-06-22 18:45     ` Max Filippov
2018-06-22 20:33       ` Philippe Mathieu-Daudé
2018-06-22 21:55         ` Alex Bennée

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.