Tom, Yes ARM926 CPU are not supported, not only they don't have VFP but they are ARMv5 when V8 base requirement is ARMv6. So V8 3.17 is the only way for you.
Also I couldn't help noticing your simulator has VFP support (though the real hardware won't). Your crash is not VFP related, you are failing on a movw instruction which is an ARMv7 only instruction when your CPU is ARMv5. So you probably compiled your binary for ARMv7. Compiling for ARMv5 will only move the issue as V8 will emit instruction from newer architecture. HTH, Rodolph. On 31 October 2013 10:45, Tom Jacobs <[email protected]> wrote: > We've heard reports of our app not working on these phones (usually > android 2.2 phones): > - HTC Wildfire S > - Samsung Galaxy Ace > - Samsung Galaxy Mini > - Samsung Galaxy Ace Duos S6802 > - Samsung GT I5510M > > Running the app in a 2.2 armeabi Android simulator, it crashes, and that > simulator gives this cpuinfo: > > /Applications/android-sdk-mac_x86/platform-tools/adb shell cat > /proc/cpuinfo > Processor : ARM926EJ-S rev 5 (v5l) > BogoMIPS : 262.14 > Features : swp half thumb fastmult vfp edsp java > CPU implementer : 0x41 > CPU architecture: 5TEJ > CPU variant : 0x0 > CPU part : 0x926 > CPU revision : 5 > > Hardware : Goldfish > Revision : 0000 > Serial : 0000000000000000 > > > So is the solution just to bring our v8 back to 3.17? > Can you think of any other workaround to get v8 to run on these phones, > perhaps by doing floating point some other way? > > We also have the option of using Rhino instead for these phones, but we'd > have to detect the CPU type first. We may have to go this route. > > The crash stack for it is below: > > 10-31 21:31:54.430 385-385/org.me.mobiexpensifyg D/dalvikvm﹕ Trying > to load lib /data/data/org.me.mobiexpensifyg/lib/libjv8.so 0x46030c28 > 10-31 21:31:54.572 30-30/? I/DEBUG﹕ *** *** *** *** *** *** *** *** > *** *** *** *** *** *** *** *** > 10-31 21:31:54.572 30-30/? I/DEBUG﹕ Build fingerprint: > 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys' > 10-31 21:31:54.572 30-30/? I/DEBUG﹕ pid: 385, tid: 385 >>> > org.me.mobiexpensifyg <<< > 10-31 21:31:54.572 30-30/? I/DEBUG﹕ signal 4 (SIGILL), fault addr > 8123b770 > 10-31 21:31:54.572 30-30/? I/DEBUG﹕ r0 00149a38 r1 00000000 r2 > 00000000 r3 fffff4f4 > 10-31 21:31:54.572 30-30/? I/DEBUG﹕ r4 001375d0 r5 8147ddb8 r6 > 81481e20 r7 81481e38 > 10-31 21:31:54.581 30-30/? I/DEBUG﹕ r8 00149a38 r9 0000ccb0 10 > 4208bca4 fp 00000000 > 10-31 21:31:54.581 30-30/? I/DEBUG﹕ ip 00149a30 sp be984738 lr > 8123b76c pc 8123b770 cpsr 20000010 > 10-31 21:31:54.741 30-30/? I/DEBUG﹕ #00 pc 0023b770 > /data/data/org.me.mobiexpensifyg/lib/libjv8.so > 10-31 21:31:54.741 30-30/? I/DEBUG﹕ #01 lr 8123b76c > /data/data/org.me.mobiexpensifyg/lib/libjv8.so > 10-31 21:31:54.741 30-30/? I/DEBUG﹕ code around pc: > 10-31 21:31:54.741 30-30/? I/DEBUG﹕ 8123b750 e59f305c e7953003 > e5830000 e3a00004 > 10-31 21:31:54.741 30-30/? I/DEBUG﹕ 8123b760 ebfc86ab e1a08000 > ebfffdc7 e59f3044 > 10-31 21:31:54.751 30-30/? I/DEBUG﹕ 8123b770 e3050760 e7953003 > e5838000 ebfc86a4 > 10-31 21:31:54.751 30-30/? I/DEBUG﹕ 8123b780 e1a05000 ebfffe8e > e5865000 eaffffdd > 10-31 21:31:54.751 30-30/? I/DEBUG﹕ 8123b790 e5970000 e5961000 > eb05e6f8 eaffffdd > 10-31 21:31:54.751 30-30/? I/DEBUG﹕ code around lr: > 10-31 21:31:54.751 30-30/? I/DEBUG﹕ 8123b74c eb05e645 e59f305c > e7953003 e5830000 > 10-31 21:31:54.751 30-30/? I/DEBUG﹕ 8123b75c e3a00004 ebfc86ab > e1a08000 ebfffdc7 > 10-31 21:31:54.751 30-30/? I/DEBUG﹕ 8123b76c e59f3044 e3050760 > e7953003 e5838000 > 10-31 21:31:54.751 30-30/? I/DEBUG﹕ 8123b77c ebfc86a4 e1a05000 > ebfffe8e e5865000 > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ 8123b78c eaffffdd e5970000 > e5961000 eb05e6f8 > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ stack: > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ be9846f8 00000000 > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ be9846fc be98472c [stack] > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ be984700 00000000 > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ be984704 0000ccb0 [heap] > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ be984708 4208bca4 > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ be98470c 00000004 > 10-31 21:31:54.761 30-30/? I/DEBUG﹕ be984710 8147ddb8 > /data/data/org.me.mobiexpensifyg/lib/libjv8.so > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be984714 81481e20 > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be984718 81481e38 > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be98471c afd0cd65 > /system/lib/libc.so > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be984720 00000004 > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be984724 8099eac4 > /data/data/org.me.mobiexpensifyg/lib/libgnustl_shared.so > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be984728 001375d0 [heap] > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be98472c 8147ddb8 > /data/data/org.me.mobiexpensifyg/lib/libjv8.so > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be984730 df002777 > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ be984734 e3a070ad > 10-31 21:31:54.771 30-30/? I/DEBUG﹕ #00 be984738 8147c58c > /data/data/org.me.mobiexpensifyg/lib/libjv8.so > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be98473c 00000003 > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984740 00000004 > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984744 00000000 > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984748 80813b00 > /system/lib/libdvm.so > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be98474c b0001169 > /system/bin/linker > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984750 b0010488 > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984754 00002730 > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984758 b0010494 > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be98475c b000122b > /system/bin/linker > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984760 b00134dc > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984764 80900000 > /data/data/org.me.mobiexpensifyg/lib/libgnustl_shared.so > 10-31 21:31:54.780 30-30/? I/DEBUG﹕ be984768 0000001d > 10-31 21:31:54.791 30-30/? I/DEBUG﹕ be98476c b00103a4 > 10-31 21:31:54.791 30-30/? I/DEBUG﹕ be984770 b00103a4 > 10-31 21:31:54.791 30-30/? I/DEBUG﹕ be984774 00002730 > 10-31 21:31:54.791 30-30/? I/DEBUG﹕ be984778 00002730 > 10-31 21:31:54.791 30-30/? I/DEBUG﹕ be98477c b0002817 > /system/bin/linker > 10-31 21:31:55.641 32-32/? D/Zygote﹕ Process 385 terminated by > signal (4) > 10-31 21:31:55.651 96-247/system_process I/ActivityManager﹕ Process > org.me.mobiexpensifyg (pid 385) has died. > > Thanks, > Tom > www.expensify.com > > > On 30 October 2013 22:58, Rodolph Perfetta <[email protected]>wrote: > >> Hi Tom, >> >> Can you confirm this is a VFP issue: >> * adb shell cat /proc/cpuinfo on the device will tell you if you have VFP >> * what instruction is generating the fault? >> >> On a side note reverting the commit on a post 3.18 V8 will not work. >> >> Cheers, >> Rodolph. >> >> >> >> On 30 October 2013 11:35, Tom Jacobs <[email protected]> wrote: >> >>> Hi Danno, >>> >>> We're running V8 on Android and we're finding that it's crashing on some >>> older Android devices (a few years old), we suspect those that don't have >>> VFPv2. >>> I see support for no-VFPv2 was removed in 3.18 in this commit: >>> https://code.google.com/p/v8/source/detail?r=14159 >>> >>> Is there any way of bringing no-VFPv2 support back to V8? We're running >>> a fork of it from about 6 months ago (https://github.com/Expensify/jv8), >>> and so might it be as simple as just reverting that commit? >>> >>> Or is there any other way of working around and having it run fine on >>> those chips? >>> >>> Our crash happens here: >>> Trying to load lib /data/data/org.me.**mobiexpensifyg/lib/libjv8.so >>> 0x46030c28 >>> ... crash ... >>> #00 pc *0023c978* /data/data/org.me.**mobiexpensifyg/lib/libjv8.so >>> By analyzing which line of code the crash comes from, this is what I get: >>> $ addr2line -C -f -e obj/local/armeabi/libjv8.so *0023c978* >>> v8::internal::Isolate::**EnsureDefaultIsolate() >>> >>> Thanks, >>> Tom. >>> >>> >>> On Thursday, April 4, 2013 10:52:22 PM UTC+11, danno wrote: >>>> >>>> Due the increasing cost of the keeping the "no-VFPv2" port of V8 >>>> working on ARM, we are planning on making 3.17 the last V8 release that >>>> that supports ARM chips without VFPv2. Starting with the 3.18 release, the >>>> minimal V8 requirements will increase to ARMv6 + VFPv2. In order to >>>> simplify maintenance, we will also remove the "pre-VFP2" ARM code from the >>>> V8 code base. >>>> >>>> Danno >>>> >>> -- >>> -- >>> v8-users mailing list >>> [email protected] >>> http://groups.google.com/group/v8-users >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "v8-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >> -- >> -- >> v8-users mailing list >> [email protected] >> http://groups.google.com/group/v8-users >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "v8-users" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/v8-users/aSOFbaAQvMk/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to the Google Groups > "v8-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
