libtool: static libs where shared can't be built

Yaakov S (Cygwin Ports) yselkowitz@users.sourceforge.net
Fri Nov 11 07:11:00 GMT 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Charles Wilson wrote:
> First what does "/bin/sh ../libtool --version" say, when you run it in
> your build directory?  If it doesn't say 1.5.20, then you need to
> re-libtoolize your project.

I forgot to mention that I had already re-libtoolized (I consider
autoreconf standard procedure), otherwise I wouldn't be bothering you
about someone else's copy of libtool. :-)  This is from our
libtool-1.5.20-1.

> Second, the "right" way to do this is the following:
> 
> 1) since you have undefined symbols, you shouldn't lie to libtool by
> saying "-no-undefined'.  On cygwin/mingw, that SHOULD be enough to
> ensure that only a static library is built.  However, you'd still get a
> shared library on other platforms.

I already tried that in case 1 in my first message.

> 2) If you want static only, for all platforms, but just for this
> particular library, then if you're using automake --- use
> target-specific LDFLAGS:
> 
> libkscreensaver_la_LDFLAGS = -static [other flags like -version-info]
> 
> (or otherwise pass -static [but NOT -no-undefined] to libtool)

Hmmm, am I missing something here?

/bin/sh ../libtool --mode=link --tag=CXX g++  -Wno-long-long -Wundef
- -Wall -W -Wpointer-arith -DNDEBUG -DNO_DEBUG -O2 -O2 -pipe
- -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common
- -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT
- -DQT_NO_TRANSLATION    -o libkscreensaver.la -rpath /usr/lib -L/usr/lib
- -L/usr/lib/qt3/lib -L/usr/X11R6/lib    -R /usr/lib -R /usr/lib -R
/usr/lib/qt3/lib -R /usr/X11R6/lib -version-info 6:0:2  -static main.lo
kscreensaver.lo ../kio/libkio.la ../kdecore/libkdecore.la -lqt-mt  -lz
- -lpng -lz -lm -lXext -lX11  -lSM -lICE -lpthread
libtool: link: warning: undefined symbols not allowed in i686-pc-cygwin
shared libraries
ar cru .libs/libkscreensaver.a
ranlib .libs/libkscreensaver.a
creating libkscreensaver.la
(cd .libs && rm -f libkscreensaver.la && ln -s ../libkscreensaver.la
libkscreensaver.la)

$ d .libs/libkscreensaver.a
rw-r--r--  Yaakov:None  8  Nov 10 21:09  libkscreensaver.a
1 regular files, with a total size of 8.

It's still empty! (That's 8 bytes.)


Yaakov
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDdA1epiWmPGlmQSMRAvfQAJ4lJU5xIKfA1zumViYIxgglQKJscwCgopGx
mHTNPJW1axYvHKjyggSTByU=
=vAuQ
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list