Date: Sat, 20 Jul 2002 17:17:46 +0200 From: Siegbert Baude <siegbert.baude@gmx.de> To: questions@freebsd.org Cc: dinoex@freebsd.org Subject: Race conditions in ports system? Message-ID: <3D397F1A.1010903@gmx.de>
next in thread | raw e-mail | index | archive | help
Hi,
I posted this a few weeks ago on ports, but got no answer (all this ssh
and apache
ballyhoo :-( ), so I retry it here:
I'm not sure, if what I see really qualifies as a race condition, but
the very same steps lead to two (and only two) different results without
any obvious
reason. Before I file a PR I would like someone to reproduce this error,
but an indication that it's not only me, is PR ports/34268, as this
leads to exactly the same errors as I'm seeing here, when fiddling
with licq-qt-gui, and they also magically disappeared without any reason.
This is on 4.6-STABLE with all ports in today's version.
su-2.05a# grep FLAGS /etc/make.conf
CFLAGS=-O -pipe
COPTFLAGS=-O -pipe
su-2.05a#
What did I do?
I tried to compile net/licq-qt-gui with the QT3 libs (PR 34268 sees
this error with QT2; as QT2 and QT3 can't be installed in parallel,
I can't exactly redo the PR's environment).
The obvious patches in the Makefile I applied, as the lib is called
qt-mt in QT3:
USE_AUTOMAKE= yes
-USE_QT_VER= 2
+USE_QT_VER= 3
post-patch:
- @${PERL5} -pi -e 's|libqt-mt.so.2|libqt2-mt.so.4|g;' \
- -e 's|-lqt-mt|-lqt2-mt|g;' \
- -e 's|libqt.so|libqt2.so|g;' \
- -e 's|-lqt$$|-lqt2|g;' ${WRKSRC}/acinclude.m4
+ @${PERL5} -pi -e 's|-lqt2-mt|-lqt-mt|g;' \
+ ${WRKSRC}/acinclude.m4
+ @${PERL5} -pi -e 's|-lqt2-mt|-lqt-mt|g;' \
+ ${WRKSRC}/configure
This leads sometimes to the error as follows:
su-2.05a# make
[snip]
===> Building for licq-qt-gui-1.0.4
cd . && autoheader
WARNING: Using auxiliary files such as `acconfig.h', `config.h.bot'
WARNING: and `config.h.top', to define templates for `config.h.in'
WARNING: is deprecated and discouraged.
WARNING: Using the third argument of `AC_DEFINE' and
WARNING: `AC_DEFINE_UNQUOTED' allows to define a template without
WARNING: `acconfig.h':
WARNING: AC_DEFINE([NEED_MAIN], 1,
WARNING: [Define if a function `main' is needed.])
WARNING: More sophisticated templates can also be produced, see the
WARNING: documentation.
autoheader: `config.h.in' is updated
cd . \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
/bin/sh ./config.status
creating config.h
gmake all-recursive
gmake[1]: Wechsel in das Verzeichnis Verzeichnis
»/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/plugins/qt-gui-1.0.4«
Making all in src
gmake[2]: Wechsel in das Verzeichnis Verzeichnis
»/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/plugins/qt-gui-1.0.4/src«
/bin/sh ../libtool --silent --mode=compile c++ -DHAVE_CONFIG_H -I. -I.
-I.. -D_REENTRANT
-I/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/include
-I/usr/X11R6/include -I/usr/X11R6/include -I/usr/local/include
-I/usr/local/include -I/usr/X11R6/include -D_THREAD_SAFE -O -pipe
-fno-exceptions -fno-check-new -pthread -Wall -I/usr/X11R6/include
-I/usr/X11R6/include -c adduserdlg.cpp
adduserdlg.cpp:75: adduserdlg.moc: No such file or directory
gmake[2]: *** [adduserdlg.lo] Fehler 1
gmake[2]: Verlassen des Verzeichnisses Verzeichnis
»/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/plugins/qt-gui-1.0.4/src«
gmake[1]: *** [all-recursive] Fehler 1
gmake[1]: Verlassen des Verzeichnisses Verzeichnis
»/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/plugins/qt-gui-1.0.4«
gmake: *** [all-recursive-am] Fehler 2
*** Error code 2
Stop in /usr/src/ports/net/licq-qt3-gui.
But the exactly same steps sometimes lead to the correct output:
su-2.05a# make
[snip]
===> Building for licq-qt-gui-1.0.4
cd . && autoheader
WARNING: Using auxiliary files such as `acconfig.h', `config.h.bot'
WARNING: and `config.h.top', to define templates for `config.h.in'
WARNING: is deprecated and discouraged.
WARNING: Using the third argument of `AC_DEFINE' and
WARNING: `AC_DEFINE_UNQUOTED' allows to define a template without
WARNING: `acconfig.h':
WARNING: AC_DEFINE([NEED_MAIN], 1,
WARNING: [Define if a function `main' is needed.])
WARNING: More sophisticated templates can also be produced, see the
WARNING: documentation.
autoheader: `config.h.in' is updated
cd . \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
/bin/sh ./config.status
creating config.h
gmake all-recursive
gmake[1]: Wechsel in das Verzeichnis Verzeichnis
»/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/plugins/qt-gui-1.0.4«
Making all in src
gmake[2]: Wechsel in das Verzeichnis Verzeichnis
»/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/plugins/qt-gui-1.0.4/src«
cd .. \
&& CONFIG_FILES=src/Makefile CONFIG_HEADERS= /bin/sh ./config.status
creating src/Makefile
gmake[2]: Verlassen des Verzeichnisses Verzeichnis
»/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/plugins/qt-gui-1.0.4/src«
gmake[2]: Wechsel in das Verzeichnis Verzeichnis
»/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/plugins/qt-gui-1.0.4/src«
/usr/X11R6/bin/moc ./adduserdlg.h -o adduserdlg.moc
/bin/sh ../libtool --silent --mode=compile --tag=CXX c++ -DHAVE_CONFIG_H
-I. -I. -I.. -D_REENTRANT
-I/usr/src/ports/net/licq-qt3-gui/work/licq-1.0.4/include
-I/usr/X11R6/include -I/usr/X11R6/include -I/usr/local/include
-I/usr/local/include -I/usr/X11R6/include -D_THREAD_SAFE -O -pipe
-fno-exceptions -fno-check-new -pthread -Wall -I/usr/X11R6/include
-I/usr/X11R6/include -c adduserdlg.cpp
^C
The relevant file, which differs in the two cases is the Makefile in
plugins/qt-gui-1.0.4/src:
In case of error it's:
su-2.05a# ls -l work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile*
-rw-r--r-- 1 root wheel 12670 24 Jun 00:32
work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile
-rw-r--r-- 1 root wheel 1960 22 Nov 2001
work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile.am
-rw-r--r-- 1 root wheel 19942 24 Jun 00:32
work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile.in
su-2.05a# grep -A 10 "adduserdlg.moc:"
work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile
su-2.05a#
In case of success it's:
su-2.05a# ls -l work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile*
-rw-r--r-- 1 root wheel 20444 24 Jun 00:36
work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile
-rw-r--r-- 1 root wheel 1960 22 Nov 2001
work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile.am
-rw-r--r-- 1 root wheel 19942 24 Jun 00:36
work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile.in
su-2.05a# grep -A 10 "adduserdlg.moc:"
work/licq-1.0.4/plugins/qt-gui-1.0.4/src/Makefile
adduserdlg.moc: $(srcdir)/adduserdlg.h
$(MOC) $(srcdir)/adduserdlg.h -o adduserdlg.moc
#>+ 3
outputwin.moc: $(srcdir)/outputwin.h
$(MOC) $(srcdir)/outputwin.h -o outputwin.moc
#>+ 3
sigman.moc: $(srcdir)/sigman.h
$(MOC) $(srcdir)/sigman.h -o sigman.moc
su-2.05a#
So sometimes the lines to create the .moc files get exported into the
Makefile from Makefile.in and sometimes they don't. Why?
My system is as solid as it could be, and as the error is always leading
to the same mistake in Makefile, I don't believe in hardware failures.
Nevertheless my hardware:
ABIT BX-133, 256MB RAM, PIII/850, nothing was ever overclocked.
To hunt this down I need help, as I have no idea what's going around.
Ciao
Siegbert
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D397F1A.1010903>
