PeeWeeLinux 0.61 with glibc 2.2.5 on PC/104. Problems with libc.so.6

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi

I'm currently trying to port a PeeWeeLinux 0.61, a Java Runtime
Environment  IBM-Java2-JRE-1.3.1 and a Tomcat Webserver to a PC/104
board.

IBM-Java2-JRE-1.3.1 requires at least glibc 2.2.4. I've replace the
files of glibc 2.1.3 of the PeeWeeLinux 0.61 with files from glibc
2.2.5.

When trying to boot the PC/104 board I get the following message:
: error in loading shared libraries: libc.so.6: cannot open shared
object file: No such file or directory

libc.so.6 is located in /lib

Can anybody help?

Roger

Re: PeeWeeLinux 0.61 with glibc 2.2.5 on PC/104. Problems with libc.so.6



Quoted text here. Click to load it


It may be looking at /lib/i686 (or lower depending on your
proc). That's where it is on my RH box. On your host machine,
try applying:
objdump -x <program> | grep RPATH
to the binaries you installed.


Quoted text here. Click to load it


--
Eric
----------------------------------------
We've slightly trimmed the long signature. Click to see the full one.
Re: PeeWeeLinux 0.61 with glibc 2.2.5 on PC/104. Problems with libc.so.6
My Proc is 486
/lib/ix86 does not exist on PeeWeeLinux

Contents of /lib of PeeWeeLinux 0.61:

ld-2.1.3.so
ld-linux.so.2 -> ld-2.1.3.so
libBrokenLocale-2.1.3.so
libBrokenLocale.so.1 -> libBrokenLocale-2.1.3.so
libNoVersion-2.1.3.so
libNoVersion.so.1 -> libNoVersion-2.1.3.so
libc-2.1.3.so
libc.so.6 -> libc-2.1.3.so
libcrypt-2.1.3.so
libcrypt.so.1 -> libcrypt-2.1.3.so
libdl-2.1.3.so
libdl.so.2 -> libdl-2.1.3.so
libm-2.1.3.so
libm.so.6 -> libm-2.1.3.so
libnss_dns-2.1.3.so
libnss_dns.so.2 -> libnss_dns-2.1.3.so
libnss_files-2.1.3.so
libnss_files.so.2 -> libnss_files-2.1.3.so
libpthread-0.8.so
libpthread.so.0 -> libpthread-0.8.so
libresolv-2.1.3.so
libresolv.so.2 -> libresolv-2.1.3.so
libtermcap.so.2 -> libtermcap.so.2.0.8
libtermcap.so.2.0.8
libutil-2.1.3.so
libutil.so.1 -> libutil-2.1.3.so

Contents of /lib were replace by the following libraries of glibc
2.2.5:

ld-linux.so.2
libBrokenLocale.so.1
libc.so.6
libcrypt.so.1
libdl.so.2
libm.so.6
libnss_dns.so.2
libnss_files.so.2
libpthread.so.0
libresolv.so.2
libutil.so.1

objdump -x libc.so.6 | grep RPATH
gives no output.

Do I have to set RPATH somewhere, although /lib is the default
directory for libraries?

Roger

Re: PeeWeeLinux 0.61 with glibc 2.2.5 on PC/104. Problems with libc.so.6
Roger,



Here's what I'd do:
- start with a fresh install of the distribution and check that it boots
- add the additionnal programs, one at a time, and check the system boots after
each addition
- when you have found the program "foo" that fails, run it through ldd and
objdump on the system
you've copied it from:

$ ldd foo
[result]
$ objdump -x foo
[result]

ldd shows the exact path of the libraries that "foo" depends on, on the host
system. These libraries
depend both on some definitions inside "foo", and on the way the host system is
installed. It may be that
you have several instances of libc.so.6 and only one provides the version that
foo requires. On doubt,
ldconfig may also provide some hints:

$ ldconfig -p | grep libc.so.6
    libc.so.6 (libc6, hwcap: 0x8000000000000, OS ABI: Linux 2.4.1) =>
/lib/i686/libc.so.6
    libc.so.6 (libc6, OS ABI: Linux 2.2.5) => /lib/libc.so.6

(redhat 8.0) shows that the one in lib/`uname -m` has a specific hardware
definition, and supports
a more recent ABI.

objdump shows foo's definitions, especially the exact libs that it depends on,
as well as
the RPATH/RUNPATH fieds (see "man ld.so" for explanations). It may be (though it
is bad
practice) that a shared object dependency is included as a complete path.


Hope this helps,


Eric




----------------------------------------
firstname dot lastname at jaluna dot com
www.jaluna.com


Site Timeline