View Single Post
Old 01-23-2014, 03:51 PM   #12
langelgjm
Junior Member
langelgjm began at the beginning.
 
Posts: 5
Karma: 12
Join Date: Jan 2014
Device: Kindle DX
Fix to rely only on GLIBC 2.4

Quote:
Originally Posted by staylo View Post
Thanks for this. I tested on a 3.2.1 dxg, but was unsuccessful. luajit seems to be using some glibc 2.7 functions:

[root@kindle kvncviewer]# ./luajit
./luajit: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./luajit)
It's relatively easy to fix this - you need to edit both the toplevel Makefile, as well as luajit's Makefile (in the luajit-2.0/src directory) so that "-D_GNU_SOURCE=1" is always passed to the compiler.

This will get you binaries that do not rely on glibc 2.7 (they rely on 2.4, and at least on my Kindle DX it has glibc 2.5).

The relevant lines should read as follows:

Code:
CFLAGS?="-D_GNU_SOURCE=1"
LIBVNCCLIENT_CFLAGS=-D_GNU_SOURCE=1 -fPIC -shared \
in ./Makefile, and

Code:
CC= gcc -D_GNU_SOURCE=1
in ./luajit-2.0/src/Makefile

If you want to know why this is happening, the following link explains that the problem is a conflict between glibc and the C99 standard over scanf and related functions: http://stackoverflow.com/questions/2...some-platforms

This explains why -D_GNU_SOURCE works: http://stackoverflow.com/questions/8...se-it-and-when

And this was helpful in debugging the offending function: http://stackoverflow.com/questions/4...ation-coverage

This does not solve my problem, which I am still working on.
langelgjm is offline   Reply With Quote