Opened 6 years ago

Last modified 4 years ago

#718 testing defect

Support x86, and possibly MIPS on Android

Reported by: sponge Owned by: str4d
Priority: minor Milestone: eventually
Component: apps/android Version: 0.9.1
Keywords: Cc:
Parent Tickets:

Description

Note to self: :-)

WARNING: Resource name [libjcpuid-x86-linux.so] was not found
WARNING: Native CPUID library jcpuid not loaded - will not be able to read CPU information using CPUID
WARNING: jbigi loadLibrary() fail
java.lang.UnsatisfiedLinkError: Couldn't load jbigi: findLibrary returned null
        at java.lang.Runtime.loadLibrary(Runtime.java:365)
        at java.lang.System.loadLibrary(System.java:535)
        at net.i2p.util.NativeBigInteger.loadGeneric(NativeBigInteger.java:528)
        at net.i2p.util.NativeBigInteger.loadNative(NativeBigInteger.java:456)
        at net.i2p.util.NativeBigInteger.<clinit>(NativeBigInteger.java:206)
        at net.i2p.crypto.YKGenerator.<clinit>(YKGenerator.java:113)
        at net.i2p.crypto.ElGamalEngine.<init>(ElGamalEngine.java:75)
        at net.i2p.I2PAppContext.initializeElGamalEngine(I2PAppContext.java:635)
        at net.i2p.I2PAppContext.elGamalEngine(I2PAppContext.java:625)
        at net.i2p.router.Router.warmupCrypto(Router.java:719)
        at net.i2p.router.Router.runRouter(Router.java:436)
        at net.i2p.router.Router.main(Router.java:1102)
        at net.i2p.router.RouterLaunch.main(RouterLaunch.java:14)
        at net.i2p.android.router.service.RouterService$Starter.run(RouterService.java:312)
        at java.lang.Thread.run(Thread.java:856)
WARNING: Native BigInteger library jbigi not loaded - using pure Java - poor performance may result - see http://www.i2p2.i2p/jbigi for help
Reseed start
Reseeding from https://euve5653.vserver.de/netDb/
ERROR [Reseed      ] net.i2p.util.SSLEepGet        : All key store loads failed, will only load local certificates
checking for Android bug
Test failed for: exp=64, act=896
Android BitSet bug detected, workaround implemented!

Subtickets (add)

Change History (6)

comment:1 Changed 6 years ago by str4d

  • Milestone 0.9.3 deleted

comment:2 Changed 5 years ago by zzz

  • Component changed from package/other to apps/android
  • Milestone set to 0.9.14

related/dup: #1203

Last edited 5 years ago by zzz (previous) (diff)

comment:3 Changed 5 years ago by zzz

  • Owner changed from sponge to str4d
  • Status changed from new to assigned

Reassigning to str4d as he is working on this

comment:4 Changed 5 years ago by str4d

  • Milestone changed from 0.9.14 to 0.9.14.1
  • Status changed from assigned to testing

libjbigi.so files for x86 and MIPS can be built as of a03b4a542c4c26d11441da6d8dbba735aab2127a. They now need to be tested.

comment:5 Changed 4 years ago by str4d

  • Milestone changed from 0.9.14.1 to eventually

I have updated the build script for GMP 6.0.0 and rebuilt the armeabi libjbigi.so, as well as building one for armeabi-v7a. Pushed in 702df64c3fbc493243d142b32449666b19d23e2d. The armeabi-v7a binary is particularly handy; newer devices will see a speedup as they will now use the newer CPU features. From tests on my local device:

armeabi:     native = 77% of pure java time
armeabi-v7a: native = 62% of pure java time

x86 and MIPS still require testing. The x86 libjbigi.so binary causes the x86 emulator to hang (API 21), or crash (API 19) with exceeds size of memVRTable. This might be an emulator issue, but it is probably a compilation issue.

comment:6 Changed 4 years ago by str4d

Found a bug: jbigi.c was being compiled and linked with completely different flags to libgmp. Somehow this worked on ARM but blew up the x86 emulator. Fixed in aac87c1a3b9a643ae34e705195eace8645838533.

The emulator runs fine now at API 21, but still crashes on API 19. API 10 runs fine though, which is strange. x86 and MIPS libjbigi.sos have been checked in; if nothing else, it will be useful to see what crash reports are returned on Google Play.

Note: See TracTickets for help on using tickets.