[ELDK] ld.so.1 needed by libpthread.so.0 not found

Ed Jubenville edjubenville at att.net
Fri Jan 24 02:20:10 CET 2014


I have a very old project in maintenance mode, based on the IceCube board
built upon ELDK 3.1.1.  I am trying to move the development environment to a
new PC running SUSE Linux 3.11.6.  I installed the ELDK using the same ISO
image and instructions that I had used many years ago.  My application
compiled fine, but wouldn't link due to undefined references.  I found that
even a simple empty main() program would produce these errors:

 

ppc_82xx-gcc  main.c

/opt/eldk/usr/bin/../lib/gcc-lib/ppc-linux/3.3.3/../../../../ppc-linux/bin/l
d: warning: ld.so.1, needed by /opt/eldk/usr/../ppc_82xx/lib/libc.so.6, not
found (try using -rpath or -rpath-link)

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_lookup_versioned_symbol_skip at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_rtld_global at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_lookup_versioned_symbol at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_start_profile at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_check_map_versions at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_mcount at GLIBC_2.1'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`__libc_enable_secure at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_get_origin at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_dst_substitute at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_debug_state at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_init at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`__libc_stack_end at GLIBC_2.1'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_dst_count at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_out_of_memory at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_signal_error at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_debug_printf at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_r_debug at GLIBC_2.0'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_map_object_deps at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_unload_cache at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_relocate_object at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_argv at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_catch_error at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_lookup_symbol_skip at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_lookup_symbol at GLIBC_PRIVATE'

/opt/eldk/usr/../ppc_82xx/lib/libc.so.6: undefined reference to
`_dl_map_object at GLIBC_PRIVATE'

collect2: ld returned 1 exit status

 

The libc.so.6 file is in the same folder as ld.so.1.

 

Ran "ppc_82xx-ldd   /opt/eldk/ppc_82xx/lib/libc.so.6" and it reported:

        ld.so.1 => /opt/eldk/ppc_82xx/lib/ld.so.1

 

Ran "ppc_82xx-ldd   /opt/eldk/ppc_82xx/lib/ld.so.1" and it reported no
dependencies.

 

After reading about similar problems, I tried compiling with "-shared", and
it fixed it.  Compiling my original application with "-shared" grows the
binary (stripped of debug symbols) from 7 MB to 11 MB. 

 

Is there another linker fix that wouldn't grow the application size?

 

Ed J

 



More information about the eldk mailing list