Hi, I use libtool to manage the build of my C++ shared library. But I find it passes --nostdlib to g++. It works fine in most cases but is not working well with gcov.
This is the command for linking: libtool: link: g++ -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/crtbeginS.o src/.libs/libcppbash_la-libbash.o src/.libs/libcppbash_la-cppbash_builtin.o src/builtins/.libs/libcppbash_la-echo_builtin.o src/builtins/.libs/libcppbash_la-source_builtin.o src/builtins/.libs/libcppbash_la-return_builtin.o src/builtins/.libs/libcppbash_la-inherit_builtin.o .libs/libcppbash_la-libbashLexer.o .libs/libcppbash_la-libbashParser.o src/core/.libs/libcppbash_la-interpreter.o src/core/.libs/libcppbash_la-bash_ast.o -Wl,--whole-archive ./.libs/libwalker.a -Wl,--no-whole-archive -lantlr3c -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/crtn.o --coverage -Wl,-soname -Wl,libcppbash.so.0 -o .libs/libcppbash.so.0.0.0 When I add "--coverage" to CXXFLAGS(I also added -g and -O0), the project fails to compile on 64bit machines(on 32bit machines it's ok). Here's the error message: /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/variable_printer: hidden symbol `atexit' in /usr/lib64/libc_nonshared.a(atexit.oS) is referenced by DSO /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: Nonrepresentable section on output collect2: ld returned 1 exit status make[1]: *** [variable_printer] Error 1 make[1]: *** Waiting for unfinished jobs.... /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/metadata_generator: hidden symbol `atexit' in /usr/lib64/libc_nonshared.a(atexit.oS) is referenced by DSO /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: Nonrepresentable section on output collect2: ld returned 1 exit status variable_printer and metadata_generator are two utilities that are linked against the shared libraries. Things work properly when I reconfigure my project with --disable-shared. -- Best wishes, Mu Qiao GnuPG fingerprint: 92B1 B0C4 8D14 F8C4 EFA5 3ACC 30B3 0DE4 17B1 57E9 _______________________________________________ https://lists.gnu.org/mailman/listinfo/libtool