Subject: Re: buildlink'd .la file has wrong .so instead of .dylib
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 07/21/2005 18:02:37
> Now to figure out why the work.belgium/qt-x11-free-3.3.4/lib/libqt-mt.la was 
> generated wrong ... or why it was used instead of .buildlink version.

I saw that:

*** [buildlink3] Warning: libtool replaced -lqt-mt with 
/opt/pkgsrc/x11/qt3-tools/work.belgium/qt-x11-free-3.3.4/lib/libqt-mt.la

libtool: link: warning: 
`/opt/pkgsrc/x11/qt3-tools/work.belgium/qt-x11-free-3.3.4/lib/libqt-mt.la' 
seems to be moved

I also saw lines like:

ln -s libqassistantclient.so.1.0.0 libqassistantclient.so.1.0
rm -f ../../../lib/libqassistantclient.so.1.0.0
rm -f ../../../lib/libqassistantclient.so
rm -f ../../../lib/libqassistantclient.so.1
rm -f ../../../lib/libqassistantclient.so.1.0
mv libqassistantclient.so.1.0.0 libqassistantclient.so 
libqassistantclient.so.1
libqassistantclient.so.1.0 ../../../lib/
mv: rename libqassistantclient.so.1.0.0 to 
../../../lib/libqassistantclient.so.1
.0.0: No such file or directory
gnumake[2]: [../../../lib/libqassistantclient.so.1.0.0] Error 1 (ignored)

No .so here.

I see that some .prl files have ".so" as paty of the QMAKE_PRL_TARGET 
targets. Also see:
work.belgium/qt-x11-free-3.3.4//lib/libeditor.prl:QMAKE_PRL_TARGET = 
libeditor.so.1.0.0
work.belgium/qt-x11-free-3.3.4//lib/libqassistantclient.prl:QMAKE_PRL_TARGET 
= libqassistantclient.so.1.0.0
work.belgium/qt-x11-free-3.3.4//lib/libqt-mt.prl:QMAKE_PRL_TARGET = 
libqt-mt.so.3.3.4
work.belgium/qt-x11-free-3.3.4//lib/libqui.prl:QMAKE_PRL_TARGET = 
libqui.so.1.0.0

I don't understand why qmake is creating these prl files with .so instead 
of dylib.

I moved /usr/bin/libtool out of the way. Later build failed with:

g++: installation problem, cannot exec `/usr/bin/libtool': No such file or 
directory

This is after it did a lot of other work.

Also, I see it was using native /usr/bin/gnumake instead of pkgsrc 
provided gmake. That probably does not matter though. And now I see that 
TOOLS_PLATFORM.gmake is defined that way by default for Darwin.

And now I see that the generated qmake.conf has different libtool. I don't 
know which one is being used.

-QMAKE_LINK             = /usr/pkg/bin/libtool --mode=link g++
+QMAKE_LINK             = libtool --mode=link g++
  QMAKE_LINK_SHLIB_CMD    = \
-       /usr/pkg/bin/libtool --mode=link g++ $(LFLAGS) \
+       libtool --mode=link g++ $(LFLAGS) \
... and others ...

Anyone know how to tell gcc to use my pkgsrc libtool?

Also, this did build early last month.

I can't tell yet if the changes related to "Restore changes in revision 
1.34 of qt3-libs/Makefile.common after the change in revision 1.6 of 
mk/buildink3/libtool-fix-la, and create the qmake.conf files at 
post-configure time.  This causes the libtool wrapper to be used to create 
the libtool archives, instead of just using ${LOCALBASE}/bin/libtool. 
Bump the PKGREVISIONs for the packages that include 
qt3-libs/Makefile.common as their *.la files are now different." has 
anything to do with this.




  Jeremy C. Reed

  	  	 	 BSD News, BSD tutorials, BSD links
 	  	 	 http://www.bsdnewsletter.com/