[Buildroot] Analysis of build results

Romain Naour romain.naour at gmail.com
Sat Feb 29 21:15:10 UTC 2020


Hi Peter,

Le 28/02/2020 à 16:02, Peter Seiderer a écrit :
> Hello Romain,
> 
> On Fri, 28 Feb 2020 08:32:18 +0100, Romain Naour <romain.naour at gmail.com> wrote:
> 
>>>
>>>>     arm      |         mesa3d-19.3.4          | NOK |
>>> http://autobuild.buildroot.net/results/6387b0a99e1a0922811919623d9a10b0943988df
>>> |
>>>
>>> {standard input}: Assembler messages:
>>> {standard input}:334: Error: selected processor does not support `vldm
>>> r4,{q0,q1,q2,q3}' in ARM mode
>>> {standard input}:335: Error: selected processor does not support `vst1.8
>>> d0,[r3],r2' in ARM mode
>>> {standard input}:336: Error: selected processor does not support `vst1.8
>>> d1,[r3],r2' in ARM mode
>>> {standard input}:337: Error: selected processor does not support `vst1.8
>>> d2,[r3],r2' in ARM mode
>>>
>>> Bad stuff happens when building the vc4 driver. It probably needs some
>>> minimal ARM architecture variant.
>>>
>>
>> I believe we should re-add the dependency on neon for vc4 driver. There is
>> -mfpu=neon added by the build system.
> 
> The BR2_ARM_CPU_HAS_NEON dependency was dropped with commit [1] because mesa3d
> commit [2] added a compile time detected neon support, in the meantime this
> was changed to a runtime detection [3] and finally enabled for the meson
> cross compile build with commit [4] (assuming toolchain support for the
> neon assembler instructions)...

Thank you for the detailed explanation.

I saw the commit [4] and conclude that upstream mesa3d now require neon support
when vc4 driver is enabled.

> 
> Maybe the compile error could be fixed by re-adding partly the compile time
> check for the neon support (tested):
> 
> --- mesa3d-19.3.4/src/broadcom/common/v3d_cpu_tiling.h_orig	2020-02-28 14:47:44.232634657 +0100
> +++ mesa3d-19.3.4/src/broadcom/common/v3d_cpu_tiling.h	2020-02-28 14:49:21.518425222 +0100
> @@ -31,7 +31,7 @@
>  v3d_load_utile(void *cpu, uint32_t cpu_stride,
>                 void *gpu, uint32_t gpu_stride)
>  {
> -#if defined(V3D_BUILD_NEON) && defined(PIPE_ARCH_ARM)
> +#if defined(V3D_BUILD_NEON) && defined(__ARM_ARCH) && __ARM_ARCH >= 7
>          if (gpu_stride == 8) {
>                  __asm__ volatile (
>                          /* Load from the GPU in one shot, no interleave, to
> @@ -141,7 +141,7 @@
>  v3d_store_utile(void *gpu, uint32_t gpu_stride,
>                  void *cpu, uint32_t cpu_stride)
>  {
> -#if defined(V3D_BUILD_NEON) && defined(PIPE_ARCH_ARM)
> +#if defined(V3D_BUILD_NEON) && defined(__ARM_ARCH) && __ARM_ARCH >= 7
>          if (gpu_stride == 8) {
>                  __asm__ volatile (
>                          /* Load each 8-byte line from cpu-side source,
> 

But -mfpu=neon is still present on the command line.

Do you think if the neon support can be handled/forced by a new meson option?

Best regards,
Romain

> Regards,
> Peter
> 
> [1] https://git.buildroot.net/buildroot/commit/package/mesa3d?id=350cb0d32ece533b9723a5f3ca6fbf7e6f071c90
> [2] https://cgit.freedesktop.org/mesa/mesa/commit/?h=17.1&id=4d30024238efa829cabc72c1601beeee18c3dbf2
> [3] https://cgit.freedesktop.org/mesa/mesa/commit/?h=staging/19.3&id=ece06defe77a77d2db40abeddee5a2e0e45654ce
> [4] https://cgit.freedesktop.org/mesa/mesa/commit/?id=932ed9c00b99e6ec92146ec9e820f546cf3e6551
> 
>>
>> Romain
> 



More information about the buildroot mailing list