Subject: Re: please build qt3-libs and qt3-tools using buildlink3 (patches provided)
To: Jeremy C. Reed <reed@reedmedia.net>
From: Bang Jun-Young <junyoung@mogua.com>
List: tech-pkg
Date: 07/10/2004 23:51:03
Bang Jun-Young wrote:
> Jeremy C. Reed wrote:
> > In PR #25753, Joachim Kuebart provided some ideas on making qt3-libs
> > build using buildlink3.
> >
> > Early last month, I used these ideas under Linux and NetBSD 1.6.2 to
> > build and install qt3-libs and qt3-tools and a few packages using qt3.
> >
> > Please test the following patches. (It also makes qt3-libs pkgview
> > ready but I did not test that.)
> >
> > In the qmake.conf patch below, it should probably use
> > ${_COMPILER_LD_FLAG}${_OPSYS_RPATH_NAME} instead and the post-patch SED
> > work at bottom of Makefile.common should do that too. (If you can test
> > that instead, please do so.)
>
> Still doesn't build on FreeBSD 5.2.1. :-(
[Oops, please ignore the last mail from me, which is too long]
On NetBSD:
/usr/pkg/bin/libtool --mode=link g++ [...] -rpath /usr/pkg/qt3/lib
mkdir ../lib/.libs
g++ -shared -nostdlib /usr/lib/crti.o /usr/lib/crtbeginS.o [...] -o ../lib/.libs/libqt-mt.so.3.3
(cd ../lib/.libs && rm -f libqt-mt.so.3 && ln -s libqt-mt.so.3.3 libqt-mt.so.3)
(cd ../lib/.libs && rm -f libqt-mt.so && ln -s libqt-mt.so.3.3 libqt-mt.so)
On FreeBSD:
/usr/pkg/bin/libtool --mode=link g++ [...] -rpath /usr/pkg/qt3/lib
mkdir ../lib/.libs
creating reloadable object files...
creating a temporary reloadable object file: ../lib/.libs/../lib/libqt-mt.la-2.o
ld -r -o ../lib/.libs/../lib/libqt-mt.la-1.o .obj/release-shared-mt/.libs/qtaddons_x11.o [...] .obj/release-shared-mt/.libs/moc_qworkspace.o
/usr/bin/ld: cannot open output file ../lib/.libs/../lib/libqt-mt.la-1.o: No such file or directory
Relevant libtool/ltmain.sh code snippet:
if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
:
else
# The command line is too long to link in one step, link piecewise.
$echo "creating reloadable object files..."
[... comments snipped ...]
if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
save_libobjs=$libobjs
fi
save_output=$output
# Clear the reloadable object creation command queue and
# initialize k to one.
test_cmds=
concat_cmds=
objlist=
delfiles=
last_robj=
k=1
output=$output_objdir/$save_output-${k}.$objext
...
$echo "creating a temporary reloadable object file: $output"
What matters above is the value of $output. It should be
../lib/.libs/libqt-mt.la-1.o but ../lib is taking place in the middle of
the path name. Where does ../lib come from?
Jun-Young