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/