Help - Search - Members - Calendar
Full Version: Linker Problem
OESF Forums > Distros, Development, and Model Specific Forums > Everything Development > OpenZaurus/Opie/Qtopia
ztep
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
From a quick google this looks like C++ name mangling. Do you need to link in something else for C++?


Si
ztep
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
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
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.