I want to run my Java program on a Raspberry Pi vA or vB. I'm using the SQLite JDBC library, which should support the Raspi. When I start the .jar, this error pops up:
A fatal error has been detected by the Java Runtime Environment:
SIGILL (0x4) at pc=0xac507cb0, pid=5789, tid=3057054816
JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)
Java VM: Java HotSpot(TM) Client VM (25.65-b01 mixed mode linux-arm )
Problematic frame:
C [sqlite-3.8.11.2-38a14bad-15c4-42f0-8c15-a19159eabd43-libsqlitejdbc.so+0x5cb0]
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
If you would like to submit a bug report, please visit:
http://bugreport.java.com/bugreport/crash.jsp
The crash happened outside the Java Virtual Machine in native code.
See problematic frame for where to report the bug.
Stack: [0xb6320000,0xb6370000], sp=0xb636d6f0, free space=309k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [sqlite-3.8.11.2-38a14bad-15c4-42f0-8c15-a19159eabd43-libsqlitejdbc.so+0x5cb0]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.lang.ClassLoader$NativeLibrary.load(Ljava/lang/String;Z)V+0
j java.lang.ClassLoader.loadLibrary0(Ljava/lang/Class;Ljava/io/File;)Z+328
j java.lang.ClassLoader.loadLibrary(Ljava/lang/Class;Ljava/lang/String;Z)V+48
j java.lang.Runtime.load0(Ljava/lang/Class;Ljava/lang/String;)V+57
j java.lang.System.load(Ljava/lang/String;)V+7
j org.sqlite.SQLiteJDBCLoader.loadNativeLibrary(Ljava/lang/String;Ljava/lang/String;)Z+29
j org.sqlite.SQLiteJDBCLoader.extractAndLoadLibraryFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z+308
j org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary()V+224
j org.sqlite.SQLiteJDBCLoader.initialize()Z+0
j org.sqlite.core.NativeDB.load()Z+19
j org.sqlite.core.CoreConnection.open(II)V+355
j org.sqlite.core.CoreConnection.(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V+138
j org.sqlite.jdbc3.JDBC3Connection.(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V+4
j org.sqlite.jdbc4.JDBC4Connection.(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V+4
j org.sqlite.SQLiteConnection.(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)V+4
j org.sqlite.JDBC.createConnection(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;+24
j org.sqlite.JDBC.connect(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;+2
j java.sql.DriverManager.getConnection(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/Class;)Ljava/sql/Connection;+171
j java.sql.DriverManager.getConnection(Ljava/lang/String;)Ljava/sql/Connection;+13
The code works fine on Windows by the way.
I tried to find a solution and came across an issue that had some similarities: https://github.com/xerial/sqlite-jdbc/issues/58 . They seem to have found a solution, but the fixed library file is no longer available. Can anyone help me out here?
For anyone with the same problem in the future: the library fix used in eg. XOWA does NOT work on ARMv6, so Raspi A is not supported.
Here is a mirror of the patched library (3.8.11.2) if anyone needs it: https://mega.nz/#!RVlylBQL!w6ifnhXdtv6gqMtxLwEXBQjGJqQCsHIRnf1oZsafjdw .