porting finch to uClinux

Bill Fassler bill.fassler at yahoo.com
Wed Jun 13 11:20:40 EDT 2007


I have learned enough at this point to realize that quirks in the blackfin-uClinux assember and the fact that blackfin does not support MMU makes cross-compiling to this platform a little more challenging than most....

Here are some things that may help me get past this hump if anyone knows the answers:

1) I have been told that it is easier to port/cross-compile glib1.x to blackfin than it is glib2.x, so with this in mind is there an older release of the (pidgin)/finch code that runs on glib1.x?

2) I am investigating other remedies, but if anyone knows how to turn off internationalization in glib2.x this would most likely let me avoid trying to cross-compile gettext which is where I am failing now because uClibc does not support _error_print_progname although I may be able to patch it so it does.

Regards,
Bill

Joshua Blanton <jblanton at masaka.cs.ohiou.edu> wrote: Bill Fassler wrote:
> I did seem to get past purple-client-example by disabling dbus, but I still fail in the examples and this type of failure also explains why I believe the build is still trying to link to host machine libraries instead of target libraries.

> make[4]: Entering directory `/home/project/elf_flat/uClinux-dist/pidgin-2.0.0/libpurple/example'
> /bin/sh ../../libtool --silent --tag=CC --mode=link bfin-uclinux-gcc -Wl,-elf2flt  -g -g -O2   -o nullclient -export-dynamic nullclient.o   -Wl,--export-dynamic -pthread -L/usr/local/lib -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lglib-2.0   -lxml2 -lz -lm   ../../libpurple/libpurple.la -lnsl -lresolv 
> /usr/local/lib/libgobject-2.0.so: could not read symbols: File in wrong format
> collect2: ld returned 1 exit status

Yeah, so ... pkg-config is the sucks for cross-compiling, it seems.
You do, in fact, have to futz with the search path options and such
to force it to use your cross-compile-local libraries instead of
your native libraries, even though you used --host in configure
(because pkg-config does not have any way to specify the build
target architecture, as far as I can see).  You'll need to set
PKG_CONFIG_PATH to point to the directory in which all of your
blackfin-related .pc files are located, and probably to be safe you
should set PKG_CONFIG_LIBDIR as well since it's always searched.  I
don't see any way to force DATADIR, but you really want to change it
too; it looks like pkg-config is just not smart enough to handle
this.

Basically, if you're missing the correct .pc files, I suspect that
you'll find that pidgin (finch) will still try to link with your
native libraries.  However, if you set the PKG_CONFIG_PATH
correctly, it *should* use that first and link against the blackfin
libs.

Hope this helps,
Josh


       
---------------------------------
Building a website is a piece of cake. 
Yahoo! Small Business gives you all the tools to get online.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pidgin.im/pipermail/devel/attachments/20070613/cf5dad00/attachment.html>


More information about the Devel mailing list