here is his latest reply
--
may the force, the farce and linux be with you.
See you in news://news.hkpcug.org and http://www.linux-sxs.org
--- Begin Message ---
Geoffrey LEE wrote:
> I really am not sure what is wrong with your box, I have tried ldd on
> small static compile int main () {return 0; } and ldd works fine.
okay, let me explain what i have done:
1) create main.c when only one printf statment
2) gcc -c main.c
3) ld -E main.o -o main -lgcc -lc -lgcc
/usr/lib/gcc-lib/i386-linux/2.95.4/crtend.o /usr/lib/crtn.o
(-E to export dynamic symbols..)
4) ldd main ---> okay, no problem, say it's static.
=-=-=-=-=-=
1) compile perl (with perl5.0003 thread, static Socket, static Thread)
2) delete ./perl
3) ld -o perl /usr/lib/crt1.o /usr/lib/crti.o
/usr/lib/gcc-lib/i386-linux/2.95.4/crtbegin.o -L/usr/local/lib
-L/usr/lib/gcc-lib/i386-linux/2.95.4 perlmain.o
lib/auto/DynaLoader/DynaLoader.a lib/auto/Socket/Socket.a
lib/auto/Thread/Thread.a lib/auto/re/re.a libperl.a -lnsl -ldl -lm
-lpthread -lc -lcrypt -lutil -lgcc -lc -lgcc
/usr/lib/gcc-lib/i386-linux/2.95.4/crtend.o /usr/lib/crtn.o -E
4) ./perl --> file not found
5) strace ./perl ---> execv say file not found
6) ldd ./perl --> file not found
7) ls --> file is here
8) file --> it say it's a ELF executable.
( the orignal statment perl's Makefile use to create ./perl is
cc -o perl -L/usr/local/lib -rdynamic perlmain.o
lib/auto/DynaLoader/DynaLoader.a lib/auto/Socket/Socket.a
lib/auto/Thread/Thread.a lib/auto/re/re.a libperl.a -lnsl -ldl -lm
-lpthread -lc -lcrypt -lutil )
--- End Message ---