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

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

Reply to
Roger
Loading thread data ...

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 | grep RPATH to the binaries you installed.

--
Eric
----------------------------------------
firstname dot lastname at jaluna dot com
www.jaluna.com
Reply to
Eric Dujardin

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

Reply to
Roger

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

formatting link

Reply to
Eric Dujardin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.