http://pidgin.im/pipermail/devel/2007-June/001320.htmlporting finch to uClinuxBill Fassler bill.fassler at yahoo.comWed 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 |
