Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
July 2, 2003, 2:09 pm

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
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

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.

--
Eric
----------------------------------------
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
/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
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
- » Hi resolution in ARM based processors.
- — Next thread in » Embedded Linux
-
- » Passing modules parameters
- — Previous thread in » Embedded Linux
-
- » Crosscompiling for ARM: reloc type R_ARM_ABS32 is not supported for PIC - ...
- — Newest thread in » Embedded Linux
-
- » Meglio il TS100 o il TS80 ?
- — The site's Newest Thread. Posted in » Electronics Hobby (Italian)
-