Subject: Re: Avoid using libm in rootfs

From: Thomas Maenner <[email-masked]>
Date: Thu, 29 Mar 2007 13:45:35 -0700

Hi,

Maybe on the same subject or OT, I'm having trouble with ELDK 4.1.0, kernel 
2.4.25, u-boot 1.1.6, kernel and ramdisk copied from flash into RAM on a 
TQM860L module.

Using a fresh ramdisk and installed busybox 1.4.2, plus the shared libs from 
ELDK, init barks that it can not find /lib/libc.so.6, although it's there 
(case 1)

Using fresh ELDK ramdisk, init complains about missing libm.so.6, although it 
is there... (case 2)

Some ldd and readelf output:

case 1:
devel01:/devel/abts_devel/work/tom/tq_ramdisk # ppc_8xx-ldd 
tmp_mount/bin/busybox
        libcrypt.so.1 
=> /devel.rtl01/bist_devel/tools/ppc/eldk-4.1.0/ppc_8xx/lib/libcrypt.so.1
        libc.so.6 
=> /devel.rtl01/bist_devel/tools/ppc/eldk-4.1.0/ppc_8xx/lib/libc.so.6
        ld.so.1 
=> /devel.rtl01/bist_devel/tools/ppc/eldk-4.1.0/ppc_8xx/lib/ld.so.1

devel01:/devel/abts_devel/work/tom/tq_ramdisk # ppc_8xx-readelf -d 
tmp_mount/bin/busybox | grep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libcrypt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

case 2:
devel01:/devel/abts_devel/work/tom/tq_ramdisk # ppc_8xx-ldd new/bin/busybox
        libcrypt.so.1 
=> /devel.rtl01/bist_devel/tools/ppc/eldk-4.1.0/ppc_8xx/lib/libcrypt.so.1
        libm.so.6 
=> /devel.rtl01/bist_devel/tools/ppc/eldk-4.1.0/ppc_8xx/lib/libm.so.6
        libc.so.6 
=> /devel.rtl01/bist_devel/tools/ppc/eldk-4.1.0/ppc_8xx/lib/libc.so.6
        ld.so.1 
=> /devel.rtl01/bist_devel/tools/ppc/eldk-4.1.0/ppc_8xx/lib/ld.so.1

devel01:/devel/abts_devel/work/tom/tq_ramdisk # ppc_8xx-readelf -d 
new/bin/busybox |grep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libcrypt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

Shouldn't the paths from ldd be for example /lib/libc.so.6 ?

Anybody has any idea what that could be?
I'll gladly provide any other information you'll need.

Thanks much in advance
Tom

On Thursday 29 March 2007 12:29, Wolfgang Denk wrote:
> In message <F1F6EC0C8B75034F9E3A79FC85122E8E71CD4A@aquib01a> you wrote:
> > Is it possible to avoid using libm in my roofs? Why a simple application
>
> Yes, this is possible.
>
> > always need it? Is it needed by libc or libstdc++?
>
> Simple applications don't need no libm. Neither  libc  nor  libstdc++
> per se require libm.
>
> It is your code and the library functions you call which causes such
> dependencies. Note that you have to be aware that even innocent
> looking calls like a
>
> 	printf ("Hello World\n");
>
> may be the culprits

-- 
Thomas Maenner
Engineering Project Manager
AEHR Test Systems
400 Kato Terrace
Fremont, CA 94539
Phone:  +1-510-623-9400x323
Cell:   +1-925-389-6653
Fax:    +1-510-623-9450
E-Mail: mailto:[email-masked]