Results 1 to 2 of 2
I believe I have successfully cross-compiled the two prerequisite libraries needed for glib (libiconv and gettext). However as I configure and cross compile glib (2.13.4) I blow up near the ...
- 08-28-2007 #1Just Joined!
- Join Date
- Aug 2007
- Posts
- 2
cross compiling glib for uClinux
I believe I have successfully cross-compiled the two prerequisite libraries needed for glib (libiconv and gettext). However as I configure and cross compile glib (2.13.4) I blow up near the end. I've seen other complaints on the Internet that are similar and some were blamed on a libtool bug that was fixed. Since I am using the latest and greatest libtool I am uncertain how to handle this (mostly because I don't understand it).
Here it what I'm seeing: (any suggestions or ideas would be greatly appreciated)
make[2]: Entering directory `/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/lib/glib/gobject'
if bfin-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I. -I.. -DG_LOG_DOMAIN=\"GLib-GObject\" -I.. -I../glib -I.. -DG_ENABLE_DEBUG -DG_DISABLE_DEPRECATED -DGOBJECT_COMPILATION -DG_DISABLE_CONST_RETURNS -D__linux__ -DNOMMU -DQT_THREAD_SUPPORT -I/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/include/ -pthread -D__linux__ -DNOMMU -DQT_THREAD_SUPPORT -I/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/include -Wall -MT glib-genmarshal.o -MD -MP -MF ".deps/glib-genmarshal.Tpo" \
-c -o glib-genmarshal.o `test -f 'glib-genmarshal.c' || echo './'`glib-genmarshal.c; \
then mv -f ".deps/glib-genmarshal.Tpo" ".deps/glib-genmarshal.Po"; \
else rm -f ".deps/glib-genmarshal.Tpo"; exit 1; \
fi
/bin/bash ../libtool --mode=link bfin-linux-uclibc-gcc -D__linux__ -DNOMMU -DQT_THREAD_SUPPORT -I/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/include -Wall -L/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/lib -o glib-genmarshal glib-genmarshal.o ../glib/libglib-2.0.la -lintl
mkdir .libs
bfin-linux-uclibc-gcc -D__linux__ -DNOMMU -DQT_THREAD_SUPPORT -I/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/include -Wall -o .libs/glib-genmarshal glib-genmarshal.o -L/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/lib ../glib/.libs/libglib-2.0.so /home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/lib/libiconv.so /home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/lib/libintl.so -lc -Wl,--rpath -Wl,/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/staging/usr/lib
glib-genmarshal.o: In function `_complete_in_arg':
glib-genmarshal.c:(.text+0x532): undefined reference to `_g_return_if_fail_warning'
glib-genmarshal.o: In function `_complete_out_arg':
glib-genmarshal.c:(.text+0x5fe): undefined reference to `_g_return_if_fail_warning'
glib-genmarshal.o: In function `_pad':
glib-genmarshal.c:(.text+0x6ca): undefined reference to `_g_return_if_fail_warning'
glib-genmarshal.c:(.text+0x6e6): undefined reference to `_g_malloc'
glib-genmarshal.c:(.text+0x710): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x71e): undefined reference to `_g_strdup_printf'
glib-genmarshal.c:(.text+0x752): undefined reference to `_g_log'
glib-genmarshal.o: In function `_indent':
glib-genmarshal.c:(.text+0x816): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x826): undefined reference to `_g_malloc'
glib-genmarshal.o: In function `_generate_marshal':
glib-genmarshal.c:(.text+0x898): undefined reference to `_g_strconcat'
glib-genmarshal.c:(.text+0x8b0): undefined reference to `_g_hash_table_lookup'
glib-genmarshal.c:(.text+0x8bc): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x8d2): undefined reference to `_g_hash_table_insert'
glib-genmarshal.c:(.text+0x902): undefined reference to `_g_strconcat'
glib-genmarshal.c:(.text+0x916): undefined reference to `_g_hash_table_lookup'
glib-genmarshal.c:(.text+0x92c): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x97c): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x9c6): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x9e2): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0xa14): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0xa36): undefined reference to `_g_fprintf'
glib-genmarshal.o:glib-genmarshal.c:(.text+0xa5a): more undefined references to `_g_fprintf' follow
glib-genmarshal.o: In function `_process_signature':
glib-genmarshal.c:(.text+0x10c0): undefined reference to `_g_log'
glib-genmarshal.c:(.text+0x1100): undefined reference to `_g_log'
glib-genmarshal.c:(.text+0x1128): undefined reference to `_g_strconcat'
glib-genmarshal.c:(.text+0x1142): undefined reference to `_g_strconcat'
glib-genmarshal.c:(.text+0x1174): undefined reference to `_g_strconcat'
glib-genmarshal.c:(.text+0x117e): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x11a0): undefined reference to `_g_strconcat'
glib-genmarshal.c:(.text+0x11aa): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x11d6): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x121c): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1256): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1270): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x129a): undefined reference to `_g_strconcat'
glib-genmarshal.c:(.text+0x12bc): undefined reference to `_g_hash_table_lookup'
glib-genmarshal.c:(.text+0x12fc): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1310): undefined reference to `_g_hash_table_insert'
glib-genmarshal.c:(.text+0x131a): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x1322): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x132a): undefined reference to `_g_free'
glib-genmarshal.o: In function `_new_in_arg':
glib-genmarshal.c:(.text+0x1344): undefined reference to `_g_malloc0'
glib-genmarshal.c:(.text+0x134e): undefined reference to `_g_strdup'
glib-genmarshal.o: In function `_new_out_arg':
glib-genmarshal.c:(.text+0x1370): undefined reference to `_g_malloc0'
glib-genmarshal.c:(.text+0x137a): undefined reference to `_g_strdup'
glib-genmarshal.o: In function `_parse_line':
glib-genmarshal.c:(.text+0x139e): undefined reference to `_g_scanner_get_next_token'
glib-genmarshal.c:(.text+0x13d2): undefined reference to `_g_strdup_printf'
glib-genmarshal.c:(.text+0x13de): undefined reference to `_g_scanner_get_next_token'
glib-genmarshal.c:(.text+0x13f2): undefined reference to `_g_scanner_get_next_token'
glib-genmarshal.c:(.text+0x141c): undefined reference to `_g_list_append'
glib-genmarshal.c:(.text+0x142a): undefined reference to `_g_scanner_get_next_token'
glib-genmarshal.c:(.text+0x1432): undefined reference to `_g_scanner_get_next_token'
glib-genmarshal.c:(.text+0x145c): undefined reference to `_g_list_append'
glib-genmarshal.c:(.text+0x1468): undefined reference to `_g_scanner_peek_next_token'
glib-genmarshal.c:(.text+0x1476): undefined reference to `_g_scanner_get_next_token'
glib-genmarshal.o: In function `_string_key_destroy':
glib-genmarshal.c:(.text+0x14a6): undefined reference to `_g_free'
glib-genmarshal.o: In function `_main':
glib-genmarshal.c:(.text+0x1512): undefined reference to `_g_slist_prepend'
glib-genmarshal.c:(.text+0x1532): undefined reference to `_g_slist_reverse'
glib-genmarshal.c:(.text+0x154c): undefined reference to `_g_slist_prepend'
glib-genmarshal.c:(.text+0x155e): undefined reference to `_g_scanner_new'
glib-genmarshal.c:(.text+0x1580): undefined reference to `_g_str_hash'
glib-genmarshal.c:(.text+0x158a): undefined reference to `_g_str_equal'
glib-genmarshal.c:(.text+0x1596): undefined reference to `_g_hash_table_new'
glib-genmarshal.c:(.text+0x15d4): undefined reference to `_g_strdup'
glib-genmarshal.c:(.text+0x15ee): undefined reference to `_g_hash_table_insert'
glib-genmarshal.c:(.text+0x161c): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1668): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1694): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x16e4): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1714): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1788): undefined reference to `_g_strerror'
glib-genmarshal.c:(.text+0x17b2): undefined reference to `_g_log'
glib-genmarshal.c:(.text+0x17ca): undefined reference to `_g_scanner_input_file'
glib-genmarshal.c:(.text+0x17da): undefined reference to `_g_scanner_peek_next_token'
glib-genmarshal.c:(.text+0x17fc): undefined reference to `_g_scanner_get_next_token'
glib-genmarshal.c:(.text+0x185a): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x1872): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x187e): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x1896): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x18a0): undefined reference to `_g_free'
glib-genmarshal.c:(.text+0x18b6): undefined reference to `_g_list_free'
glib-genmarshal.c:(.text+0x18ec): undefined reference to `_g_scanner_unexp_token'
glib-genmarshal.c:(.text+0x18fc): undefined reference to `_g_scanner_peek_next_token'
glib-genmarshal.c:(.text+0x194a): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1986): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x19a6): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x19b0): undefined reference to `_g_slist_free'
glib-genmarshal.c:(.text+0x19ba): undefined reference to `_g_scanner_destroy'
glib-genmarshal.c:(.text+0x19dc): undefined reference to `_g_hash_table_foreach_remove'
glib-genmarshal.c:(.text+0x19f0): undefined reference to `_g_hash_table_destroy'
glib-genmarshal.o: In function `_parse_args':
glib-genmarshal.c:(.text+0x1be4): undefined reference to `_g_strdup'
glib-genmarshal.c:(.text+0x1c14): undefined reference to `_g_strdup'
glib-genmarshal.c:(.text+0x1d3e): undefined reference to `_g_log_set_always_fatal'
glib-genmarshal.c:(.text+0x1d50): undefined reference to `_g_log_set_always_fatal'
glib-genmarshal.o: In function `_print_blurb':
glib-genmarshal.c:(.text+0x1e22): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1e3c): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1e4c): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1e64): undefined reference to `_g_fprintf'
glib-genmarshal.c:(.text+0x1e7c): undefined reference to `_g_fprintf'
glib-genmarshal.o:glib-genmarshal.c:(.text+0x1e8c): more undefined references to `_g_fprintf' follow
collect2: ld returned 1 exit status
make[2]: *** [glib-genmarshal] Error 1
make[2]: Leaving directory `/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/lib/glib/gobject'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/vocal/project/blackfin-svn-branch/elf_flat/uClinux-dist/lib/glib'
make: *** [all] Error 2
v
- 08-29-2007 #2Just Joined!
- Join Date
- Aug 2007
- Posts
- 2
resolved
Just for the next poor soul who may attempt something like this; I wanted to let everyone know that the problem stems from the blackfin compiler ABI which prepends an underscore to all symbols. Then for whatever reason the GNU automake environment (specifically configure.in and/or Makefile.in) sets LIBTOOL_EXPORT_OPTIONS in such a way as to NOT allow the exporting of symbols preceeded with an underscore.
simply changing every instance of:
LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^g.*"'
to
LIBTOOL_EXPORT_OPTIONS=
helped me get past that problem. I make no claim that this is the best way or even a correct way to address the problem, but right now it is the only way I have found.
Bill


Reply With Quote
