linker stripping shared libraries by default

Guennadi Liakhovetski g.liakhovetski at gmx.de
Mon Nov 29 10:09:39 UTC 2010


Hi all

Using "Sourcery G++ Lite 4.4-200" and trying to build executables and 
libraries with debugging information in them for profiling, I notice, that 
my object files are built unstripped, but the final ld call to link a 
library produces a stripped shared library. Here's an excerpt:

sh-linux-gnu-gcc -I. -I"/some-path/ffmpeg-shared" -D_ISOC99_SOURCE \
-D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-DHAVE_AV_CONFIG_H -g   -std=c99 -g -Wdeclaration-after-statement -Wall \
-Wno-parentheses -Wno-switch -Wdisabled-optimization -Wpointer-arith \
-Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings \
-Wtype-limits -Wundef -Wmissing-prototypes  -fno-math-errno \
-fno-signed-zeros -fno-tree-vectorize \
-Werror=implicit-function-declaration -Werror=missing-prototypes \
-MMD -MF libavutil/utils.d -MT libavutil/utils.o -c -o libavutil/utils.o \
libavutil/utils.c

sh-linux-gnu-ld -shared -soname,libavutil.so.50 \
-L"/some-path/ffmpeg-shared"/libavcodec \
-L"/some-path/ffmpeg-shared"/libavcore \
-L"/some-path/ffmpeg-shared"/libavdevice \
-L"/some-path/ffmpeg-shared"/libavfilter \
-L"/some-path/ffmpeg-shared"/libavformat \
-L"/some-path/ffmpeg-shared"/libavutil \
-L"/some-path/ffmpeg-shared"/libpostproc \
-L"/some-path/ffmpeg-shared"/libswscale \
-L/opt/renesas-4.4/sh-linux-gnu/libc/lib/ \
-L/opt/renesas-4.4/lib/gcc/sh-linux-gnu/4.4.1/ --no-strip-discarded -o \
libavutil/libavutil.so.50 libavutil/adler32.o libavutil/aes.o \
libavutil/avstring.o libavutil/base64.o libavutil/cpu.o libavutil/crc.o \
libavutil/des.o libavutil/error.o libavutil/eval.o libavutil/fifo.o \
libavutil/intfloat_readwrite.o libavutil/inverse.o libavutil/lfg.o \
libavutil/lls.o libavutil/log.o libavutil/lzo.o libavutil/mathematics.o \
libavutil/md5.o libavutil/mem.o libavutil/opt.o libavutil/pixdesc.o \
libavutil/random_seed.o libavutil/rational.o libavutil/rc4.o \
libavutil/sha.o libavutil/tree.o libavutil/utils.o  -ldl -lm -lpthread \
-lgcc_s

me at machine:~/ffmpeg-shared$ file libavutil/utils.o
libavutil/utils.o: ELF 32-bit LSB relocatable, Renesas SH, version 1 
MathCoPro/FPU/MAU Required (SYSV), not stripped

me at machine:~/ffmpeg-shared$ nm libavutil/utils.o
00000014 T avutil_configuration
00000028 T avutil_license
00000000 T avutil_version

me at machine:~/ffmpeg-shared$ file libavutil/libavutil.so.50 
libavutil/libavutil.so.50: ELF 32-bit LSB shared object, Renesas SH, 
version 1 (SYSV), dynamically linked, stripped

me at machine:~/ffmpeg-shared$ nm libavutil/libavutil.so.50
nm: libavutil/libavutil.so.50: no symbols

Any pointers?

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/



More information about the superh-gnu-discuss mailing list