Author Topic: Linker Problem  (Read 4169 times)

ztep

  • Jr. Member
  • **
  • Posts: 80
    • View Profile
Linker Problem
« on: May 24, 2005, 03:29:14 am »
Hi,
I'm trying to build rekall for Zaurus, all works fine until the linker is invoked, then it returns with a lot of undefinde symbols, all of them start with __dl_.

If I remove the --no_undefined option, it works but I think that it isn't the solution.

Any help?

Thanks.

lardman

  • Hero Member
  • *****
  • Posts: 4512
    • View Profile
    • http://people.bath.ac.uk/enpsgp/Zaurus/
Linker Problem
« Reply #1 on: May 24, 2005, 05:28:55 am »
From a quick google this looks like C++ name mangling. Do you need to link in something else for C++?


Si
C750 OZ3.5.4 (GPE, 2.6.x kernel)
SL5500 OZ3.5.4 (Opie)
Nokia 770
Serial GPS, WCF-12, Socket Ethernet & BT, Ratoc USB
WinXP, Mandriva

ztep

  • Jr. Member
  • **
  • Posts: 80
    • View Profile
Linker Problem
« Reply #2 on: May 24, 2005, 05:39:59 am »
I think that is a problem with the dynamic linker (ld-linux.so.2) but I don't know how to resolve it.
Tomorrow I will post the detailed error messages.

ztep

  • Jr. Member
  • **
  • Posts: 80
    • View Profile
Linker Problem
« Reply #3 on: June 09, 2005, 10:24:08 am »
Here is the error:

/usr/src/rekall-2.3.4$ arm-linux-g++ -Wl,--no-undefined --verbose -shared -o ports/qt3/libztrekall_kde.so ports/qt3/tk_dirwatch.os ports/qt3/rk_application.os ports/qt3/rk_box.os ports/qt3/rk_combobox.os ports/qt3/rk_dialog.os ports/qt3/rk_gridbox.os ports/qt3/rk_hbox.os ports/qt3/rk_lineedit.os ports/qt3/rk_listbox.osports/qt3/rk_listview.os ports/qt3/rk_modalfilter.os ports/qt3/rk_progress.os ports/qt3/rk_pushbutton.os ports/qt3/rk_tabwidget.os ports/qt3/rk_textedit.os ports/qt3/rk_vbox.os ports/qt3/tk_action.os ports/qt3/tk_config.os ports/qt3/tk_dialogs.os ports/qt3/tk_filedialog.os ports/qt3/tk_icons.os ports/qt3/tk_lineedit.os ports/qt3/tk_mainwindow.os ports/qt3/tk_menubar.os ports/qt3/tk_part.os ports/qt3/tk_print.os ports/qt3/tk_progress.os ports/qt3/tk_toolbutton.os ports/qt3/tk_xmlguispec.os -L/opt/qte334z/lib -lqte-mt -ldl -lpthread
Reading specs from /opt/Embedix/tools/lib/gcc-lib/arm-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /opt/Embedix/tools/lib/gcc-lib/arm-linux/2.95.2/collect2 -shared -dynamic-linker /opt/Embedix/tools/arm-linux/lib/ld-linux.so.2 -X -m armelf_linux -p -o ports/qt3/libztrekall_kde.so /opt/Embedix/tools/arm-linux/lib/crti.o /opt/Embedix/tools/lib/gcc-lib/arm-linux/2.95.2/crtbeginS.o -L/opt/qte334z/lib -L/opt/Embedix/tools/lib/gcc-lib/arm-linux/2.95.2 -L/opt/Embedix/tools/arm-linux/lib --no-undefined ports/qt3/tk_dirwatch.os ports/qt3/rk_application.os ports/qt3/rk_box.os ports/qt3/rk_combobox.os ports/qt3/rk_dialog.os ports/qt3/rk_gridbox.os ports/qt3/rk_hbox.os ports/qt3/rk_lineedit.os ports/qt3/rk_listbox.os ports/qt3/rk_listview.os ports/qt3/rk_modalfilter.os ports/qt3/rk_progress.os ports/qt3/rk_pushbutton.os ports/qt3/rk_tabwidget.os ports/qt3/rk_textedit.os ports/qt3/rk_vbox.os ports/qt3/tk_action.os ports/qt3/tk_config.os ports/qt3/tk_dialogs.os ports/qt3/tk_filedialog.os ports/qt3/tk_icons.os ports/qt3/tk_lineedit.os ports/qt3/tk_mainwindow.os ports/qt3/tk_menubar.os ports/qt3/tk_part.os ports/qt3/tk_print.os ports/qt3/tk_progress.os ports/qt3/tk_toolbutton.os ports/qt3/tk_xmlguispec.os -lqte-mt -ldl -lpthread -lstdc++ -lm -lgcc -lc -lgcc /opt/Embedix/tools/lib/gcc-lib/arm-linux/2.95.2/crtendS.o /opt/Embedix/tools/arm-linux/lib/crtn.o
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_lazy@GLIBC_2.1.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_dst_substitute@GLIBC_2.1.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_relocate_object@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_clktck@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `__libc_enable_secure@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_catch_error@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_platformlen@GLIBC_2.1.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_lookup_versioned_symbol_skip@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_lookup_versioned_symbol@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_mcount@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_dst_count@GLIBC_2.1.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_initial_searchlist@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_start_profile@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_lookup_symbol@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `__libc_stack_end@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_argv@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_debug_files@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_loaded@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_origin_path@GLIBC_2.1.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_check_map_versions@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_map_object@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_main_searchlist@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_debug_impcalls@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_load_lock@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_profile@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_debug_state@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_init_all_dirs@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_r_debug@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_debug_message@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_unload_cache@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_signal_error@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_init@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_all_dirs@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_map_object_deps@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_nloaded@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_profile_map@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_profile_output@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_pagesize@GLIBC_2.2'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_lookup_symbol_skip@GLIBC_2.0'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_fpu_control@GLIBC_2.1'
/opt/Embedix/tools/arm-linux/lib/libdl.so: undefined reference to `_dl_catch_error'
/opt/Embedix/tools/arm-linux/lib/libc.so.6: undefined reference to `_dl_global_scope_alloc@GLIBC_2.1'
collect2: ld returned 1 exit status

I have been looking using google and I have read that this type of errors are because there is a version conflict between the dynamic linker (ld-linux.so.2) and libc library. But, as you can see using the --verbose option, the dynamic linker used is the one in the Embedix compiler distribution, so it sould be correct.

Anyone knows how to resolve this problem?

lardman

  • Hero Member
  • *****
  • Posts: 4512
    • View Profile
    • http://people.bath.ac.uk/enpsgp/Zaurus/
Linker Problem
« Reply #4 on: June 10, 2005, 04:54:54 am »
Quote
the dynamic linker used is the one in the Embedix compiler distribution, so it sould be correct.

No, it won't be correct as the Embedix toolchain uses an older libc than OpenZaurus does.

Why don't you try using the OpenEmbedded/BitBake build system?

http://openembedded.org


Si
C750 OZ3.5.4 (GPE, 2.6.x kernel)
SL5500 OZ3.5.4 (Opie)
Nokia 770
Serial GPS, WCF-12, Socket Ethernet & BT, Ratoc USB
WinXP, Mandriva