Search code examples
qtembeddedtouchscreenangstrom-linux

Qt compile error when use tslib with angstrom g++


In the above scenario I am getting the following compile error. Can someone tell me why? I am using the following doc as my guide line

http://billforums.station51.net/viewtopic.php?f=8&t=15

ts_test.o: In function `main':
ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa7c): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
make[2]: *** [ts_test] Error 1
ts_harvest.o: In function `main':
ts_harvest.c:(.text+0x5d0): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa7c): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
make[2]: *** [ts_harvest] Error 1
make[2]: Leaving directory `/home/thwijeth/Downloads/tslib-1.0/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/thwijeth/Downloads/tslib-1.0'
make: *** [all] Error 2
ts_test.o: In function `main':
ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa7c): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
make[2]: *** [ts_test] Error 1
ts_harvest.o: In function `main':
ts_harvest.c:(.text+0x5d0): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa7c): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
make[2]: *** [ts_harvest] Error 1
make[2]: Leaving directory `/home/thwijeth/Downloads/tslib-1.0/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/thwijeth/Downloads/tslib-1.0'
make: *** [all] Error 2

Solution

  • A simple Google search on "rpl_malloc" finds many references to this issue, with suggestions for solutions. The problem is that the Autoconf configure script is having trouble finding malloc for some reason, and tries to fall back to rpl_malloc. There are a couple of suggestions to work around this:

    1.) Define the ac_cv_func_malloc_0_nonnull=yes environment variable before you run configure, for instance by running configure (assuming a bash shell) as:

    ac_cv_func_malloc_0_nonnull=yes ./configure <your configure options>
    

    or

    2.) Manually change the configure script to comment out the rpl_malloc problem AC_FUNC_MALLOC line by prefixing it with a #.

    (Reference: this blog post, among others)