Hello, I'm making some experiments with Cuneiform (bzr:532) on ARM. My
target is Nokia N900, Maemo5.

I first compiled and got Cuneiform working on 64bit Ubuntu-10.10.
This is my test case:
cat /usr/share/automake-1.11/COPYING | convert -pointsize 56 -page
1950x3288+50+10 1950x3288+50+10 text:-'[0]' -monochrome -normalize
gpl.bmp
LD_LIBRARY_PATH=/usr/local/lib64/ cuneiform -f text -o gpl_processed.txt gpl.bmp

Result is readable, but not perfect.
http://pastebin.com/wN5ZU62B
(e.g. row2 web address and row 4 "itis")
*

On ARM: Compiling (actually linking) stops at error "undefined
reference to `htobe32'"
Which is used on cuneiform_src/Kern/rstr/src/perc.c:785
#define swapbytes(a) do { (a) = htobe32(a); } while (0)
Which is defined on <endian.h>
#  define htobe32(x) __bswap_32 (x)

This is case with Ubuntu, but on ARM, endian.h does not contain this.
(Might be because there are no bswap32 on ARM, as I know).

I made very dummy workaround to get it compiled:
+//#define swapbytes(a) do { (a) = htobe32(a); } while (0)
+#define swapbytes(a) ;


I got it compiled with many warnings, which I didn't saw with Ubuntu:
http://pastebin.com/HdcxHunN
(Seems they all are:
warning: comparison is always true due to limited range of data type
warning: comparison is always false due to limited range of data type
)
With same test-image, N900 produces non-readable result. It can be
identified though
cuneiform -f text -o gpl_n900.txt gpl.bmp
http://pastebin.com/68SSxkKU

*

perc.c says:  "processing of the 'percent' symbol". Does this mean all
that bswap32-thing affects only for "%"?
If yes, does it imply that ARM-version will work after warnings are fixed?

-Aapo Rantalainen

_______________________________________________
Mailing list: https://launchpad.net/~cuneiform
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~cuneiform
More help   : https://help.launchpad.net/ListHelp

Reply via email to