ARM binary can run on x86 device via Houdini, which converts ARM instructions 
on the fly to IA instructions. Using this way, IA devices can run most of ARM 
binaries in Google Play with little performance penalty.

Regards,
-Yang

From: Hwang, Dongseong [mailto:dongseong.hw...@intel.com]
Sent: Tuesday, March 25, 2014 6:36 PM
To: Zhu, Yongsheng
Cc: Gu, Yang; crosswalk-dev@lists.crosswalk-project.org
Subject: Re: [Crosswalk-dev] Question about Android build

I did clean build without any options, which means arm build. ia32 test device 
runs well with it.
libchromeshell.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), 
dynamically linked, not stripped

I was curious how ia32 test device run well android chrome which I downloaded 
from google play. I did adb pull and unzip the chrome apk
> file libchromeview.so
libchromeview.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), 
dynamically linked, stripped
It is arm binary.

It's convenient to test both ia32 test device and nexus 5. but it's strange.

DS

On Tue, Mar 25, 2014 at 3:19 AM, Zhu, Yongsheng 
<yongsheng....@intel.com<mailto:yongsheng....@intel.com>> wrote:
I think Gu Yang's right. For Chromium34, we don't have this problem. See:
out/Release/lib/libxwalkcore.so: ELF 32-bit LSB shared object, Intel 80386, 
version 1 (SYSV), dynamically linked, not stripped

Yongsheng

From: Crosswalk-dev 
[mailto:crosswalk-dev-boun...@lists.crosswalk-project.org<mailto:crosswalk-dev-boun...@lists.crosswalk-project.org>]
 On Behalf Of Gu, Yang
Sent: Tuesday, March 25, 2014 9:06 AM
To: Hwang, Dongseong; 
crosswalk-dev@lists.crosswalk-project.org<mailto:crosswalk-dev@lists.crosswalk-project.org>
Subject: Re: [Crosswalk-dev] Question about Android build

Not sure what's the exact upstream Chromium revision your code bases on, and it 
might be related to this:
>From revision 252034, You don't need to append -target-arch to envsetup.sh. 
>Instead, you need to use gyp_chromium -Dtarget_arch=ia32 (not x86). If you 
>don't assign -Dtarget_arch, default arch is arm.
>From revision 252166, if you pass -target-arch to envsetup.sh, it will report 
>an error.

So in your case, it fell back to arm build. And I guess you have a previous 
built x86 binary there, so the generated apk contains both your new arm binary 
and old x86 binary. The behavior of apk generation is a bit buggy for me.

Regards,
-Yang

From: Crosswalk-dev [mailto:crosswalk-dev-boun...@lists.crosswalk-project.org] 
On Behalf Of Hwang, Dongseong
Sent: Tuesday, March 25, 2014 12:48 AM
To: 
crosswalk-dev@lists.crosswalk-project.org<mailto:crosswalk-dev@lists.crosswalk-project.org>
Subject: [Crosswalk-dev] Question about Android build

Hi,

I found very interesting behavior.

https://crosswalk-project.org/#contribute/building_crosswalk

First of all, set up the Android build environment. If you are targeting ARM, 
pass arm instead of x86 below:



. xwalk/build/android/envsetup.sh --target-arch=x86

When we build Crosswalk Android for x86 test device, we use x86 option. 
However, ninja uses arm toolchain, linux-x86_64/bin/arm-linux-androideabi-g++, 
although I use x86 options.
Even odd, generated apk works well on x86 test device as well as Nexus 5.

Could you explain this interesting behavior? My assumption is that x86 test 
device's jni linker can deal with arm shared object.

Br, DS

_______________________________________________
Crosswalk-dev mailing list
Crosswalk-dev@lists.crosswalk-project.org
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev

Reply via email to