Date: Mon, 24 Jun 2002 01:39:26 +0200 From: Siegbert Baude <siegbert.baude@gmx.de> To: ports@freebsd.org Cc: dinoex@freebsd.org Subject: Race conditions in ports system? Message-ID: <3D165C2E.90503@gmx.de>
next in thread | raw e-mail | index | archive | help
Hi, I'm not sure, if what I see really qualifies as a race condition, but the very same steps lead to 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 P.S.: Please CC me as I'm not subscribed on ports. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D165C2E.90503>