Find the answer to your Linux question:
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 ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Aug 2007
    Posts
    2

    Unhappy 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

  2. #2
    Just 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

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •