Re: Re-ordering of libraries by libtool.
Thank you for the thoughtful response. On Sun, 2013-02-24 at 10:50 -0600, Bob Friesenhahn wrote: On Wed, 20 Feb 2013, Richard Shann wrote: In the GNU/Denemo project we are trying to cross-build a for windows on Debian stable using static libraries. The libtool step is re-ordering the libraries before invoking the linker, and so it fails. The cross-environment has version 2.22 of GNU/Binutils, but I am not clear where the actual libtool is coming from - the host libtool is version 2.26b. It is not wise to use such an archaic libtool. You can determine which version is actually used by doing './libtool --version' in the build tree. My problem was that the build is done with some environment set, without hacking at it I cannot be sure what is being invoked (the tools are being built for doing the compiling and linking as well as the final executable) I can't find online documentation for this version, and even in the latest version there is almost no mention of libtool re-ordering the directories as given. I noticed one previous email on this topic, which received no responses. Can someone help? If any libraries have .la files, then this cause libtool to inject library dependencies (additional needed libraries) into the build, which may have the apparent effect of re-ordering. But that is intended to be only an apparent effect - the later appearance of the library on the link line would surely not be deleted? This is what I appeared to encounter - no matter how many times I listed the set of libraries on the $(CXXLD) line a symbol which nm says was defined in a library was not found. Regardless, you should be using libtool 2.4.2. Libtool 2.2.6b is a a security-patched version of libtool 2.2.6a, which was released in 2008. Yes Debian stable is always about 2 years behind; I guess that is why it is called stable :) Trying to mix-and-match components is (for me) an exercise in frustration. Once again, thanks - at the moment we have returned to trying to build using GNU/LilyPond's GUB system... Richard Shann ___ https://lists.gnu.org/mailman/listinfo/libtool
Re-ordering of libraries by libtool.
In the GNU/Denemo project we are trying to cross-build a for windows on Debian stable using static libraries. The libtool step is re-ordering the libraries before invoking the linker, and so it fails. The cross-environment has version 2.22 of GNU/Binutils, but I am not clear where the actual libtool is coming from - the host libtool is version 2.26b. I can't find online documentation for this version, and even in the latest version there is almost no mention of libtool re-ordering the directories as given. I noticed one previous email on this topic, which received no responses. Can someone help? Below is the libtool step as recorded in the log of the build (it is being done using the mxe cross-compiling makefile system). In the link the symbold register_evince_backend is defined in the libpdfdocument.a which starts off after the libevdocument.a on the line that /bin/bash gets, but is moved later when libtool executes the linker. (Or so at least is my reading of this log). Richard Shann 888 [...] /bin/bash ../libtool --tag=CXX --mode=link i686-pc-mingw32-g++ -g -O2 -o denemo.exe denemo_types.o commands.o calculatepositions.o changenotehead.o chordops.o clefdialog.o commandfuncs.o contexts.o draw.o drawaccidentals.o drawclefs.o drawcursor.o drawkey.o drawdynamic.o drawnotes.o drawselection.o drawstemdir.o drawtimesig.o drawtuplets.o drawlyric.o dynamic.o drawfigure.o exportabc.o exportlilypond.o articulations.o exportxml.o file.o hairpin.o help.o importxml.o importmusicxml.o importmidi.o kbd-custom.o kbd-interface.o keyresponses.o keysigdialog.o figure.o main.o measureops.o moveviewport.o mousing.o barline.o view.o http.o mwidthdialog.o objops.o exportmidi.o instrumentname.o external.o source.o sourceaudio.o scorelayout.o playback.o drawfakechord.o fakechord.o playbackprops.o prefdialog.o prefops.o processstaffname.o lyric.o scoreops.o scoreprops.o selectops.o staffops.o staffpropdialog.o drawbarline.o slurs.o timedialog.o tomeasuredialog.o tupletops.o utils.o graceops.o runsilent.o drawgrace.o print.o texteditors.o binreloc.o bookmarks.o parseinstruments.o keyboard.o pitchentry.o pitchrecog.o drawlilydir.o lilydirectives.o displayanimation.o midi.o audiocapture.o screenshot.o \ /home/rshann/mxe/usr/i686-pc-mingw32/lib/libintl.a -L/home/rshann/mxe/usr/i686-pc-mingw32/lib /home/rshann/mxe/usr/i686-pc-mingw32/lib/libiconv.a ../libsmf/libsmf.a libaudiobackend.a ../libsffile/libsffile.a /home/rshann/mxe/usr/i686-pc-mingw32/lib/libguile-srfi-srfi-1-v-3.a /home/rshann/mxe/usr/i686-pc-mingw32/lib/libguile-srfi-srfi-60-v-2.a /home/rshann/mxe/usr/i686-pc-mingw32/lib/libevview.a /home/rshann/mxe/usr/i686-pc-mingw32/lib/libevdocument.a /home/rshann/mxe/usr/i686-pc-mingw32/lib/evince/3/backends/libpdfdocument.a /home/rshann/mxe/usr/i686-pc-mingw32/lib/libpoppler.a /home/rshann/mxe/usr/i686-pc-mingw32/lib/libpoppler-cpp.a /home/rshann/mxe/usr/i686-pc-mingw32/lib/libpoppler-glib.a -lportmidi -L/home/rshann/mxe/usr/i686-pc-mingw32/lib -lguile -lregex -lgmp -lws2_32 -lm -lltdl -lunistring -lintl -liconv -L/home/rshann/mxe/usr/i686-pc-mingw32/lib -lxml2 -lz -liconv -lws2_32 -L/home/rshann/mxe/usr/i686-pc-mingw32/lib -lrsvg-2 -lgdk_pixbuf-2.0 -lgsf-1 -lpangocairo-1.0 -lcroco-0.6 -ltiff -llzma -ljpeg -lgio-2.0 -ldnsapi -lcairo -lmsimg32 -lpangoft2-1.0 -lpangowin32-1.0 -lgdi32 -lpixman-1 -lpng15 -lfontconfig -lexpat -lfreetype -lbz2 -lpango-1.0 -lm -lusp10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lole32 -lshlwapi -lpcre -lintl -lxml2 -lz -liconv -lws2_32 -L/home/rshann/mxe/usr/i686-pc-mingw32/lib -lfontconfig -lexpat -lfreetype -lz -lbz2 -liconv -L/home/rshann/mxe/usr/i686-pc-mingw32/lib -lgthread-2.0 -lglib-2.0 -lws2_32 -lole32 -lshlwapi -lpcre -lintl -liconv -L/home/rshann/mxe/usr/i686-pc-mingw32/lib -lsndfile -lFLAC -lwsock32 -lvorbisenc -lvorbis -lm -logg-L/home/rshann/mxe/usr/i686-pc-mingw32/lib -lgtk-win32-2.0 -lwinspool -lcomctl32 -lcomdlg32 -lgdk-win32-2.0 -limm32 -lshell32 -luuid -latk-1.0 -lpangocairo-1.0 -lgio-2.0 -ldnsapi -lgdk_pixbuf-2.0 -lpangoft2-1.0 -lpangowin32-1.0 -lpango-1.0 -lm -lusp10 -lcairo -lmsimg32 -lgdi32 -lpixman-1 -lfontconfig -lexpat -lfreetype -lbz2 -ltiff -llzma -ljpeg -lpng15 -lz -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lws2_32 -lole32 -lshlwapi -lpcre -lintl -liconv -L/home/rshann/mxe/usr/i686-pc-mingw32/lib -lgtksourceview-2.0 -lxml2 -lgtk-win32-2.0 -lwinspool -lcomctl32 -lcomdlg32 -lgdk-win32-2.0 -limm32 -lshell32 -luuid -latk-1.0 -lpangocairo-1.0 -lgio-2.0 -ldnsapi -lgdk_pixbuf-2.0 -lpangoft2-1.0 -lpangowin32-1.0 -lpango-1.0 -lm -lusp10 -lcairo -lmsimg32 -lgdi32 -lpixman-1 -lfontconfig -lexpat -lfreetype -lbz2 -ltiff -llzma -ljpeg -lpng15 -lz -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lws2_32 -lole32 -lshlwapi -lpcre -lintl -liconv -L/home/rshann/mxe/usr/i686-pc-mingw32/lib -levview -levdocument -lgtk-win32-2.0 -lwinspool -lcomctl32 -lcomdlg32 -lgdk-win32