compile chromium for armv7a via openembedded core (bitbake)

112 views
Skip to first unread message

Thilo Cestonaro

unread,
Apr 25, 2013, 4:27:53 AM4/25/13
to chromium...@chromium.org
Hey,

I try to compile chromium 24.0.1312.52 via bitbake for armv7a but I get the following compile error:
arm-magna-linux-gnueabi-gcc  -march=armv7-a -fno-tree-vectorize      -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a8 -mthumb-interwork -mno-thumb --sysroot=/home/cestonarot/Projects/utc_soc/setup-scripts/build/tmp-angstrom_2010_x-eglibc/sysroots/dm814x-evm -MMD -MF obj/third_party/webrtc/modules/audio_processing/ns/audio_processing_neon.nsx_core_neon.o.d '-DWEBRTC_SVNREVISION="Unavailable(issue687)"' -D_FILE_OFFSET_BITS=64 -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DUSE_LIBJPEG_TURBO=1 -DUSE_NSS=1 -DENABLE_ONE_CLICK_SIGNIN -DGTK_DISABLE_SINGLE_INCLUDES=1 -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DUSE_PROPRIETARY_CODECS -DENABLE_CONFIGURATION_POLICY -DENABLE_INPUT_SPEECH -DENABLE_NOTIFICATIONS -DENABLE_GPU=1 -DENABLE_EGLIMAGE=1 -DUSE_SKIA=1 -DENABLE_TASK_MANAGER=1 -DENABLE_WEB_INTENTS=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PROTECTOR_SERVICE=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_BACKGROUND=1 -DENABLE_AUTOMATION=1 -DENABLE_PRINTING=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_ARCH_ARM_NEON -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../../third_party/webrtc -I../../third_party -I../../third_party/webrtc/common_audio/signal_processing/include -Werror -pthread -fno-exceptions -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -mfpu=neon -flax-vector-conversions -mthumb -march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp -mfpu=neon -O2 -fno-ident -fdata-sections -ffunction-sections   -c ../../third_party/webrtc/modules/audio_processing/ns/nsx_core_neon.c -o obj/third_party/webrtc/modules/audio_processing/ns/audio_processing_neon.nsx_core_neon.o
{standard input}: Assembler messages:
{standard input}:272: Error: ']' expected -- `vld1.16 {d22},[ip:64]'

I then tried to compile it with --save-temps so I can have a look at the assemble code which is the following:
#APP
@ 160 "../../third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h" 1
clz r2, r2
@ 0 "" 2
.thumb
rsb r2, r2, #31
asr r2, r8, r2
strh r2, [ip, r3] @ movhi
.L21:
adds r3, r3, #2
cmp r3, #16
bne .L22
add r1, sp, #312
vld1.16 {d22}, [ip:64]    # <-------- this line is 272
vmull.s16 q11, d22, d24
add r2, r6, #648
vld1.16 {d20}, [r1]
add r3, r5, r7, lsl #1
vmull.s16 q10, d20, d24
add r2, r4, r2, lsl #1
adds r2, r2, #4
vld1.16 {d26-d27}, [r3]
vld1.16 {d16-d17}, [r2]
vshrn.i32 d22, q11, #14
vsub.i16 q15, q13, q8
vshrn.i32 d20, q10, #14
vmov d23, d20
vrshr.s16 q10, q11, #1
vrshr.s16 q11, q11, #2
vmov d25, d20
vadd.i16 q14, q8, q11
vmov d20, d21
vmull.s16 q11, d25, d8
vmull.s16 q10, d20, d8
vshrn.i32 d22, q11, #1
vshrn.i32 d20, q10, #1
vmov d21, d20
vmov d20, d22
vsub.i16 q10, q8, q10
vmax.s16 q10, q10, q5


I can't figure out from which file this code is generated as "../../third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h" doesn't include anything which I think can produce that code (except the lines in front of .L21).

Can someone please tell me whats going wrong here?

greetings
Thilo

Thilo Cestonaro

unread,
Apr 25, 2013, 4:45:19 AM4/25/13
to chromium...@chromium.org
Do I remove the ":64" after the ip and compile it via as, it is compiled normally:

line 272: vld1.16 {d22}, [ip] 

x86_64-linux/usr/libexec/armv7a-magna-linux-gnueabi/gcc/arm-magna-linux-gnueabi/4.5.4/as -march=armv7-a -march=armv7-a -mthumb-interwork -mfloat-abi=softfp -mfloat-abi=softfp -mfpu=neon -mfpu=neon -mfpu=neon -meabi=5 -o obj/third_party/webrtc/modules/audio_processing/ns/audio_processing_neon.nsx_core_neon.o nsx_core_neon.s

Where is that code generated from? why is this :64 in there?

Greetings
Thilo

Thilo Cestonaro

unread,
Apr 25, 2013, 6:12:36 AM4/25/13
to chromium...@chromium.org
So, it compiles when I change (third_party/webrtc/modules/audio_processing/ns/nsx_core_neon.c:192)
from:
tmp32x4 = vmull_s16(vld1_s16(&deltaBuff[0]), countDiv_16x4);

to:
tmp32x4 = vmull_s16(vld1_s32((const int32_t *)&deltaBuff[0]), countDiv_16x4);

Perhaps it helps someone else.

Thilo Cestonaro

unread,
May 23, 2013, 8:08:22 AM5/23/13
to chromium...@chromium.org
Still having problems with another assembler code part:
{standard input}: Assembler messages:
{standard input}:1373: Error: ']' expected -- `vld2.u8 {q0,q1},[r0:128]!'
{standard input}:1375: Error: ']' expected -- `vst1.u8 {q0},[r1:128]!'
{standard input}:1376: Error: ']' expected -- `vst1.u8 {q1},[r2:128]!'
{standard input}:1423: Error: ']' expected -- `vld1.u8 {q0},[r0:128]!'
{standard input}:1424: Error: ']' expected -- `vld1.u8 {q1},[r1:128]!'
{standard input}:1426: Error: ']' expected -- `vst2.u8 {q0,q1},[r2:128]!'


Can someone point me out, what with ":128" behind the r0 is meant by?

I can't find it in any assembler docu.
Or what the "!" at the end of the lines is for?

Hoping for answers! 

greetings Thilo
Reply all
Reply to author
Forward
0 new messages