X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00 X-Spam-Check-By: sourceware.org Message-ID: <971187.38393.qm@web25508.mail.ukl.yahoo.com> Date: Wed, 4 Nov 2009 21:48:22 +0000 (GMT) From: Marco Atzeri Subject: question on libtool usage/limitation To: cygwin AT cygwin DOT com MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Hi All, the development of octave is moving to automake + libtool but we have some problem to convince libtool to correctly link all the libs on cygwin. Octave is built in C++, C and Fortran and during=20 the link phase we are specifing both C++, C and Fortran installed libs, in same case static. Suitesparse for example it is only static, also on other=20 platforms. /usr/lib/libamd.a /usr/lib/libbtf.a /usr/lib/libcamd.a /usr/lib/libccolamd.a /usr/lib/libcholmod.a /usr/lib/libcolamd.a /usr/lib/libcsparse.a /usr/lib/libcxsparse.a /usr/lib/libklu.a /usr/lib/libspqr.a /usr/lib/libumfpack.a In the past the link command was: g++-4 -shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enabl= e-auto-image-base -Wl,--out-implib=3Dliboctave.dll.a -o cygoctave.dll [huge= list of x.o] -L../libcruft -L. -lcruft -lcholmod -lumfpack -lamd -lcamd = -lcolamd -lccolamd -lcxsparse -larpack -lqrupdate -llapack -lblas -lfftw3 -= lfftw3f -lreadline -L/usr/lib -lpcre -lreadline -lncurses -ldl -lwsock32 = -lhdf5 -lz -lm -lwsock32 -L/bin/../lib/gcc/i686-pc-cygwin/4.3.2 -L/bin/../= lib/gcc -L/usr/lib/gcc/i686-pc-cygwin/4.3.2 -L/bin/../lib/gcc/i686-pc-cygwi= n/4.3.2/../../.. -lhdf5 -lz -lm -lgfortranbegin -lgfortran -lcygwin -luser3= 2 -lkernel32 -ladvapi32 -lshell32 and the outcome was fine: Creating library file: liboctave.dll.a The current link command is /bin/sh ../libtool --tag=3DCXX --mode=3Dlink g++-4 -g -O2 -DHAVE_CONFIG= _H -mieee-fp -Wall -W -Wshadow -Wold-style-cast -Wformat -g -O2 -g -O2 -= release 3.3.50+ -no-undefined -o liboctave.la -rpath /usr/local/lib/octave-= 3.3.50+ [huge list of x.lo] ../libcruft/libcruft.la -lcholmod -lumfpack = -lamd -lcamd -lcolamd -lccolamd -lcxsparse -larpack -lqrupdate -lfftw3 -lf= ftw3f -llapack -lblas -lreadline -lncurses -L/usr/lib -lpcre -ldl -L/bin/.= ./lib/gcc/i686-pc-cygwin/4.3.4 -L/bin/../lib/gcc -L/usr/lib/gcc/i686-pc-cyg= win/4.3.4 -L/bin/../lib/gcc/i686-pc-cygwin/4.3.4/../../.. -lm -lgfortranbeg= in -lgfortran -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lwsock32 = -lm -lwsock32 -lwsock32 -lm -lwsock32 but the disappointing outcome is ------------------------------------------------------- *** Warning: This system can not link to static lib archive /bin/../lib/gcc= /i686-pc-cygwin/4.3.4/libgfortranbegin.la. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have. libtool: link: rm -fr .libs/liboctave.la.lnkscript *** Warning: linker path does not have real file for library -lcholmod. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have *** because I did check the linker path looking for a file starting *** with libcholmod and none of the candidates passed a file format test *** using a file magic. Last file checked: /usr/lib/libcholmod.a [repeated for all the static libs] ------------------------------------------------------- Does libtool on cygwin require special setting to overcome such=20 problem ? On linux platform the build seems to be fine. Moreover for Fortran libgfortranbegin.la=20 is currently a static lib so I not easily overcome the issue changing it to a dll. Thanks in advance for any hint on where to look for Marco -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple