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