sqlite3: fix arm endian issue
authorSebastian Kemper <redacted>
Thu, 23 May 2019 18:03:00 +0000 (20:03 +0200)
committerSebastian Kemper <redacted>
Thu, 23 May 2019 18:16:12 +0000 (20:16 +0200)
commit2573c9c7c1e40ca4c2bc1df0e932dd2a91bf1587
tree051a6af300b0138ae9edf8432e6368f4a4d3faac
parent31fcfa2e2469dae7aa52b39c4e5698d39afe36d9
sqlite3: fix arm endian issue

Forum user portuquesa raised a topic (see [1]) about being unable to use
Asterisk on his armeb xscale device. We narrowed it down to sqlite3.
Asterisk was unable to insert a simple table into its db.

In short, sqlite3 assumes little endian for every ARM device. This
worked OK for 4 Byte bit (unaligned) access. But once upstream (back in
2015) added a function which accesses 2 Bytes (see [2]) this failed for
some (if not all) ARM big endian devices. ARM CPUs are bi-endian for 4
Byte reads but not for 2 Byte reads.

This patch fixes the problem by setting the endianness adequately for
ARM targets, for both 32 bit and 64 bit varieties. The patch was applied
upstream (see [3]).

[1] https://forum.openwrt.org/t/solved-asterisk13-or-15-sqlite3-database-problem/36856
[2] https://github.com/sqlite/sqlite/commit/329428e2088aabb1db2dc6e48108b76551405a8e
[3] https://www.sqlite.org/src/info/b7aad929619f7043

Signed-off-by: Sebastian Kemper <redacted>
libs/sqlite3/Makefile
libs/sqlite3/patches/01-sqlite-arm-endian.patch [new file with mode: 0644]
git clone https://git.99rst.org/PROJECT