tags:

views:

203

answers:

1

I want to supply the shared libs along with my program rather than using the target system's due to version differences:

ldd says my program uses these shared libs:

linux-gate.so.1 => (0xf7ef0000)(made by kernel)
libc.so.6 => /lib32/libc.so.6 (0xf7d88000)(libc-2.7.so)
/lib/ld-linux.so.2 (0xf7ef1000)(ld-2.7.so)

I have successfully linked ld-xxx.so by compiling like this:

gcc -std=c99 -D_POSIX_C_SOURCE=200112L -O2 -m32 -s -Wl,-dynamic-linker,ld-2.7.so myprogram.c

But I have not managed to successfuly link libc-xxx.so. How can I do that ?

+3  A: 

Passing -nodefaultlibs or -nostdlib to gcc will tell it to not pass the default libraries as arguments to ld. You will then be able to explicitly specify the libc you want to link against. See the gcc(1) man page for more details and caveats regarding both options.

Ignacio Vazquez-Abrams