Skip site navigation (1)Skip section navigation (2)
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>