Port-arm archive

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

Re: NetBSD/earm and evbearmv7hf on Cubieboard 2



Ryo ONODERA wrote:
>From: Ryo ONODERA <ryo_on%yk.rim.or.jp@localhost>, Date: Mon, 20 Jul 2015 20:36:33 +0900 (JST)
>
>> Hi,
>> 
>> From: Robert Swindells <rjs%fdy2.co.uk@localhost>, Date: Mon, 20 Jul 2015 11:14:33 +0100 (BST)
>> 
>>> 
>>> Ryo ONODERA wrote:
>>>>I will build Mozilla products on your image.
>>> 
>>> I got an error trying to build latest firefox on my Cubietruck using -current
>>> from July 11, sorry for not posting it earlier:
>>> 
>>> In file included from /u1/pkgsrc/www/firefox/work/build/gfx/skia/Unified_cpp_gfx
>>> _skia20.cpp:11:0:
>>> /u1/pkgsrc/www/firefox/work/mozilla-release/gfx/skia/trunk/src/opts/SkBitmapProc
>>> State_opts_arm.cpp: In function 'void SI8_opaque_D32_nofilter_DX_arm(const SkBit
>>> mapProcState&, const __uint32_t*, int, SkPMColor*)':
>>> /u1/pkgsrc/www/firefox/work/mozilla-release/gfx/skia/trunk/src/opts/SkBitmapProc
>>> State_opts_arm.cpp:189:1: error: fp cannot be used in asm here
>>>  } 
>>>  ^
>>> /u1/pkgsrc/www/firefox/work/mozilla-release/config/rules.mk:931: recipe for targ
>>> et 'Unified_cpp_gfx_skia20.o' failed
>>> gmake[3]: *** [Unified_cpp_gfx_skia20.o] Error 1
>>> gmake[3]: Leaving directory '/u1/pkgsrc/www/firefox/work/build/gfx/skia'
>>> /u1/pkgsrc/www/firefox/work/mozilla-release/config/recurse.mk:74: recipe for tar
>>> get 'gfx/skia/target' failed
>> 
>> My Cubieboard 2 builds libxml2 now.
>> It takes some hours to reach firefox-39.0 build.
>> 
>> If you have already gtk2 or other required packages,
>> could you apply this patch?
>> 
>> Thank you.
>
>Sorry previous patch has no path information.

The previous patch was fine, I had just been looking again at that file so
knew where to apply it.

>Here is correct one.
>
>--- gfx/skia/trunk/src/opts/SkBitmapProcState_opts_arm.cpp.orig	2015-06-30 22:57:52.000000000 +0000
>+++ gfx/skia/trunk/src/opts/SkBitmapProcState_opts_arm.cpp
>@@ -181,7 +181,7 @@ void SI8_opaque_D32_nofilter_DX_arm(cons
>             "4:                                       \n\t"   // exit
>             : [xx] "+r" (xx), [count] "+r" (count), [colors] "+r" (colors)
>             : [table] "r" (table), [srcAddr] "r" (srcAddr)
>-            : "memory", "cc", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
>+            : "memory", "cc", "r4", "r5", "r6", "r7", "r8", "r9", "r10"
>         );
>     }

There is another usage of r11 on line 100 of that file. With a similar
change to your patch above the build now stops with:

In file included from /u1/pkgsrc/www/firefox/work/build/gfx/skia/Unified_cpp_gfx
_skia8.cpp:38:0:
/u1/pkgsrc/www/firefox/work/mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.c
pp: In function 'bool sk_cpu_arm_check_neon()':
/u1/pkgsrc/www/firefox/work/mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.c
pp:112:68: error: 'TEMP_FAILURE_RETRY' was not declared in this scope
         int fd = TEMP_FAILURE_RETRY(open("/proc/cpuinfo", O_RDONLY));
                                                                    ^
/u1/pkgsrc/www/firefox/work/mozilla-release/config/rules.mk:931: recipe for targ
et 'Unified_cpp_gfx_skia8.o' failed

There isn't a definition for TEMP_FAILURE_RETRY but the code around
this is trying to read /proc/cpuinfo to find out if the CPU supports
neon. We just return an empty string for reads of /proc/cpuinfo on ARM
so this won't work correctly even with a definition for
TEMP_FAILURE_RETRY.

There is similar code in graphics/libjpeg-turbo that needs a way of
detecting whether to use the neon versions of functions or not.

It looks as if we don't define __ARM_NEON__ for earmv7hf which is one
of the things that libjpeg-turbo tests for.

Robert Swindells



Home | Main Index | Thread Index | Old Index