Hi Neil, * Neil Kirr wrote on Sat, Oct 08, 2005 at 07:40:58PM CEST: > > I was trying to build libtool with a STATIC lib_gcc instead of the evil > shared libgcc_s.so. To my surprise I found that I had to edit this file in > order for it to build the shared libraries with the --static-libgcc: > > ../libtool-1.5.20/libltdl/libtool > > I had to add the following to all of the lines with archive_cmds= and > archive_expsym_cmds= (there were 6): *snip*
> ADDED \$LDFLAGS: > > archive_cmds="\$CC -shared \${wl}-h \${wl}\$soname -o \$lib \$libobjs > \$deplibs \$compiler_flags \$LDFLAGS" > archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$lib.exp~cat > \$export_symbols | \$SED -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> > \$lib.exp~\$echo \\\"local: *; };\\\" >> \$lib.exp~ > \$CC -shared \${wl}-M \${wl}\$lib.exp \${wl}-h \${wl}\$soname -o > \$lib \$libobjs \$deplibs \$compiler_flags~\$rm \$lib.exp \$LDFLAGS" > > This correctly compiles using the --static-libgcc flag (assuming the user > set their LDFLAGS environment variable). This was on Solaris 9. Thank you for the bug report. This change is not correct, however. Linker flags are supposed to be interpreted by `libtool', because it may have to adjust (both itself and them). Having LDFLAGS directly in $archive_cmds is just wrong, as it bypasses this. In this specific example, I would guess that the `postdeps' variable for C++ will contain something like `-lstdc++ -lm -lgcc_s -lgcc_s', thus the way above will break creating shared libraries. This part should be fixed by configuring with `-static-libgcc' already. But there is another bit to fix this completely: link mode then needs to accept the flag, which it currently doesn't. Can you try configuring libtool like this as a workaround configure CXX='g++ -static-libgcc' Does it work then (and not put `-lgcc_s' iN C++ postdeps)? If so, I can try to come up with a proper fix. By the way, GCC documentation has reasons to suggest using shared libgcc over static for shared C++ libraries (but I guess you knew that). Cheers, Ralf _______________________________________________ Bug-libtool mailing list Bug-libtool@gnu.org http://lists.gnu.org/mailman/listinfo/bug-libtool