On Fri, 17 Dec 2004, Ralf Wildenhues wrote: > [ slightly reordered ] > > * Gary Kumfert wrote on Fri, Dec 17, 2004 at 12:17:17AM CET: > > On Thu, 16 Dec 2004, Gary Kumfert wrote: > > > > > > I'm tracking down an issue between Intel 8.1 and libtool 1.5.10. > > > It seems that libtool adds and crtbeginS.o crtendS.o files to > > > the link line for shared libraries... then icpc does the same.. > > > then ld complains about multiply defined symbols! Eeek! > > Wait.. > > > > Shouldn't libtool (or libtool.m4) detect these object files > > > already appear in the link line and not add them directly? > > hmm > > > > Interestingly libtool (correctly) does not insert crtbeginS.o and > > > crtendS.o into shared library link lines with icc or ifort. > > > Why icpc? > > hmm. What does > $ ./libtool --config | grep with_gcc > say? > > > > Here's some of the differences in what Intel 7.0, 8.0, and 8.1 > > > pass to ld. Note that the differences between 8.0 and 8.1 seem > > > to be significant! In particular 8.1 seems to use GNU's crtbeginS.o and > > > crtendS.o. 7.0 & 8.0 seems to rely on intel's crtxi.o and crtxn.o files > > > instead. > > I believe it's even more complicated than that. It might also depend on > how ICC was installed -- whether to its provided or GNU libstdc++, and > whether the latter was found by ICC at installation time (maybe that's > what you are seeing). > > I haven't had a chance to look how Libtool fares with all of this. > (BTW, multi-file interprocedural optimization and template libraries > provide more opportunity for failure, feel free to go wild if you have > time to look at this and cure possible problems. :-) > > > > I admit that I don't really understand what low-level linker trickery > > > these files accomplish. (A pointer to some literature would be helpful.) > > Runtime initialization and termination for the library/program given. > No, I can't give you a good answer on this, but there are bits of > information to be found in the gcc and ld manuals (info files), and > http://en.tldp.org/HOWTO/Program-Library-HOWTO/miscellaneous.html#INIT-AND-CLEANUP > http://docs.sun.com/app/docs/doc/817-1984/6mhm7pl17?a=view > and links therein are quite informative. If you'd like to see how complicate > this stuff can get, browsing around > http://www.lnf.infn.it/computing/doc/aixcxx/html/complink/concepts/cushrlib.htm > is fun. > > > I think I found the problem. When I upgraded with libtoolize. > > "libtoolize -f -c" it copied things like config.guess, config.sub, > > and ltmain.sh correctly into my AC_CONFIG_AUX_DIR. > > > > But, it did *not* update my libtool.m4 in AC_CONFIG_MACRO_DIR. > > After copying by hand, I saw that indeed the version of icpc is > > checked and different flags are selected. > > Does that mean all your other problems above are gone now? > I haven't looked at them yet because of this statement. >
This problem is resolved, I think. But I've got a much bigger one I'll put in a separate post. Thanks, Gary > > Wasn't libtoolize supposed to update the libtool.m4 file? > > I'll leave this question for somebody else to answer. > > Regards, > Ralf > _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool
