From: John R. <jreiser@BitWagon.com> - 2013-07-21 22:57:36
|
> I have a binary for valgrind on the Pi, and the ldd output is: > > /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0x401dc000) > libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x400d3000) > libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x401e5000) > /lib/ld-linux-armhf.so.3 (0x40011000) > > Is there an easy way I can tweak the build files to statically link these libraries? Are there any other tools the valgrind executable depends on that I also need to build to make it work? The top-level Makefile for valgrind looks somewhat ordinary. So you could try adding "-static -static-libgcc" to to CFLAGS. (Or add "-static" to LDFLAGS, or add "-Wl,-static" to CFLAGS.) Then look at the final link command: invoke 'make' and observe the commands that are displayed on stderr. In the worst case, then run under "strace -f -o strace.out -e trace=execve make ..." then inspect strace.out to find the actual process command line. Also look at the output from ldd, to see how well those attempts worked. You might also look one level down at memcheck/Makefile, but CFLAGS etc. from the top-level Makefile should propagate to the individual tools such as memcheck. |