WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
151188
[EFL] Fix EFL 1.16 with enabled NEON support
https://bugs.webkit.org/show_bug.cgi?id=151188
Summary
[EFL] Fix EFL 1.16 with enabled NEON support
Csaba Osztrogonác
Reported
2015-11-12 05:16:33 PST
http://trac.webkit.org/changeset/192358
bumped the EFL version from 1.15 to 1.16, but unfortunately 1.16 build is broken on ARM with enabled NEON support. :( lib/ector/software/ector_drawhelper_neon.c: In function 'comp_func_solid_source_over_neon': lib/ector/software/ector_drawhelper_neon.c:46:4: error: unknown type name 'DATA32' DATA32 *start = dest; ^ lib/ector/software/ector_drawhelper_neon.c:46:20: warning: pointer targets in initialization differ in signedness [-Wpointer-sign] DATA32 *start = dest; ^ lib/ector/software/ector_drawhelper_neon.c:48:4: error: unknown type name 'DATA32' DATA32 *end = start + (size & ~7); ^ lib/ector/software/ector_drawhelper_neon.c:58:9: warning: pointer targets in passing argument 1 of 'vld1q_u32' differ in signedness [-Wpointer-sign] d0_32x4 = vld1q_u32(start); ^ In file included from lib/ector/software/ector_drawhelper_neon.c:9:0: /usr/lib/gcc/aarch64-linux-gnu/4.8/include/arm_neon.h:19989:1: note: expected 'const uint32_t *' but argument is of type 'int *' vld1q_u32 (const uint32_t *a) ^ lib/ector/software/ector_drawhelper_neon.c:59:9: warning: pointer targets in passing argument 1 of 'vld1q_u32' differ in signedness [-Wpointer-sign] d1_32x4 = vld1q_u32(start+4); ^ In file included from lib/ector/software/ector_drawhelper_neon.c:9:0: /usr/lib/gcc/aarch64-linux-gnu/4.8/include/arm_neon.h:19989:1: note: expected 'const uint32_t *' but argument is of type 'int *' vld1q_u32 (const uint32_t *a) ^ lib/ector/software/ector_drawhelper_neon.c:87:9: warning: pointer targets in passing argument 1 of 'vst1q_u32' differ in signedness [-Wpointer-sign] vst1q_u32(start, d0_32x4); ^ CC lib/ecore/lib_ecore_libecore_la-ecore.lo In file included from lib/ector/software/ector_drawhelper_neon.c:9:0: /usr/lib/gcc/aarch64-linux-gnu/4.8/include/arm_neon.h:24488:1: note: expected 'uint32_t *' but argument is of type 'int *' vst1q_u32 (uint32_t *a, uint32x4_t b) ^ lib/ector/software/ector_drawhelper_neon.c:88:9: warning: pointer targets in passing argument 1 of 'vst1q_u32' differ in signedness [-Wpointer-sign] vst1q_u32(start+4, d1_32x4); ^ In file included from lib/ector/software/ector_drawhelper_neon.c:9:0: /usr/lib/gcc/aarch64-linux-gnu/4.8/include/arm_neon.h:24488:1: note: expected 'uint32_t *' but argument is of type 'int *' vst1q_u32 (uint32_t *a, uint32x4_t b) ^ lib/ector/software/ector_drawhelper_neon.c:95:9: warning: implicit declaration of function 'MUL_256' [-Wimplicit-function-declaration] *start = color + MUL_256(alpha, *start); ^ lib/ector/software/ector_drawhelper_neon.c: In function 'comp_func_source_over_sse2': lib/ector/software/ector_drawhelper_neon.c:138:4: error: unknown type name 'DATA32' DATA32 *start; ^ lib/ector/software/ector_drawhelper_neon.c:139:4: error: unknown type name 'DATA32' DATA32 *end; ^ lib/ector/software/ector_drawhelper_neon.c:151:10: warning: pointer targets in assignment differ in signedness [-Wpointer-sign] start = dest; ^ lib/ector/software/ector_drawhelper_neon.c:152:11: error: 'l' undeclared (first use in this function) size = l; ^ lib/ector/software/ector_drawhelper_neon.c:152:11: note: each undeclared identifier is reported only once for each function it appears in lib/ector/software/ector_drawhelper_neon.c:160:9: warning: pointer targets in passing argument 1 of 'vld1q_u32' differ in signedness [-Wpointer-sign] d_32x4 = vld1q_u32(start); ^ In file included from lib/ector/software/ector_drawhelper_neon.c:9:0: /usr/lib/gcc/aarch64-linux-gnu/4.8/include/arm_neon.h:19989:1: note: expected 'const uint32_t *' but argument is of type 'int *' vld1q_u32 (const uint32_t *a) ^ lib/ector/software/ector_drawhelper_neon.c:198:9: warning: pointer targets in passing argument 1 of 'vst1q_u32' differ in signedness [-Wpointer-sign] vst1q_u32(start, d_32x4); ^ In file included from lib/ector/software/ector_drawhelper_neon.c:9:0: /usr/lib/gcc/aarch64-linux-gnu/4.8/include/arm_neon.h:24488:1: note: expected 'uint32_t *' but argument is of type 'int *' vst1q_u32 (uint32_t *a, uint32x4_t b) ^ lib/ector/software/ector_drawhelper_neon.c:207:9: error: unknown type name 'DATA32' DATA32 sc = MUL4_SYM(color, *s); ^ lib/ector/software/ector_drawhelper_neon.c:207:9: warning: implicit declaration of function 'MUL4_SYM' [-Wimplicit-function-declaration] lib/ector/software/ector_drawhelper_neon.c:207:38: error: 's' undeclared (first use in this function) DATA32 sc = MUL4_SYM(color, *s); ^ lib/ector/software/ector_drawhelper_neon.c:208:9: error: unknown type name 'DATA32' DATA32 alpha = 256 - (sc >> 24); ^ lib/ector/software/ector_drawhelper_neon.c:103:85: warning: unused parameter 'length' [-Wunused-parameter] comp_func_source_over_sse2(uint * __restrict dest, const uint * __restrict src, int length, uint color, uint const_alpha) ^ lib/ector/software/ector_drawhelper_neon.c: In function 'init_draw_helper_neon': lib/ector/software/ector_drawhelper_neon.c:228:42: error: 'comp_func_source_over_neon' undeclared (first use in this function) func_for_mode[ECTOR_ROP_BLEND] = comp_func_source_over_neon; ^ lib/ector/software/ector_drawhelper_neon.c: At top level: lib/ector/software/ector_drawhelper_neon.c:103:1: warning: 'comp_func_source_over_sse2' defined but not used [-Wunused-function] comp_func_source_over_sse2(uint * __restrict dest, const uint * __restrict src, int length, uint color, uint const_alpha) ^ make[4]: *** [lib/ector/software/lib_ector_libector_la-ector_drawhelper_neon.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [all-recursive] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
Attachments
Patch
(4.82 KB, patch)
2015-11-16 05:44 PST
,
Csaba Osztrogonác
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Csaba Osztrogonác
Comment 1
2015-11-12 05:22:30 PST
I disabled NEON to fix the build -
http://trac.webkit.org/changeset/192360
. But it would be great to fix this build issue in upstream EFL.
Csaba Osztrogonác
Comment 2
2015-11-12 05:42:10 PST
Maybe the following patch fixes this issue: diff --git a/src/lib/ector/software/ector_drawhelper_private.h b/src/lib/ector/software/ector_drawhelper_private.h index d15a8f6..d62830a 100644 --- a/src/lib/ector/software/ector_drawhelper_private.h +++ b/src/lib/ector/software/ector_drawhelper_private.h @@ -11,6 +11,10 @@ #define MAX( a, b ) ( (a) > (b) ? (a) : (b) ) #endif +#ifndef DATA32 +typedef unsigned int DATA32; +#endif + #ifndef uint typedef unsigned int uint; #endif I'll try it later and will submit if it is enough.
Csaba Osztrogonác
Comment 3
2015-11-16 05:44:00 PST
Created
attachment 265585
[details]
Patch This patch fixes the EFL NEON build for me, but I'm not sure if it is functionally right or not. I let EFL maintainers to fix this bug themself -
https://phab.enlightenment.org/T2851
.
Csaba Osztrogonác
Comment 4
2015-11-17 05:12:01 PST
(In reply to
comment #3
)
> Created
attachment 265585
[details]
> Patch > > This patch fixes the EFL NEON build for me, but I'm not sure if it is > functionally right or not. I let EFL maintainers to fix this bug themself - >
https://phab.enlightenment.org/T2851
.
NEON build was disabled in ector, so we can enable NEON again once 1.16.1 is released or we can add the patch to jhbuild.
Csaba Osztrogonác
Comment 5
2016-01-15 06:21:30 PST
We already use 1.16.1 since
https://trac.webkit.org/changeset/194571
(
bug152688
) (and 1.17 is coming soon)
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug