I think I finally found the problem with getting Cairo to work on ARM.
What I thought was a problem with an index in the Truetype file
actually turned out to be a code generation flaw in the 4.5-linaro
compiler. The flaw was in libpixman which is a supporting library for
cairo. Compiling libpixman with -O0 made everything work. O1,O2,O3,Os
all failed. The flaw was causing random writes that corrupted memory.
I identified the subroutine with the code generation problem but I
didn't debug the assembly code.

While I was working on this bug OpenWRT was updated to the 2012-1
release of 4.6 gcc-linaro. That release fixed the compiler bug that
was causing openssl not to build. And guess what, libpixman now works
at all optimization levels on that compiler.

So I hope my problems are gone for now. I have a dozen test programs
and they are all running. I'm hoping the problem is truly fixed and
hasn't just moved around again.

Once I'm confident with stability I'll prepare patches moving cairo,
pixman, freetype, liberation up to more recent versions. Plus I'll
package the luaCairo wrapper. With those additions you'll be able to
draw pretty pictures on screens with lua scripts.

-- 
Jon Smirl
jonsm...@gmail.com
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to