Parallel build problems with dovecot 2.2.32
I use dovecot under FreeBSD 10.3 and build using poudriere. My build server has 12 cores builds typically happen in parallel and I find software that is not parallel make friendly will fail once every month or so.
Attached is a build log from this afternoon that failed because doveadm-util.o had not finished building when the attempt to link test-doveadm-util happened.
Looking in src/doveadm/Makefile* in the build tree the only place I see doveadm-util.o is in a make variable:
test_doveadm_util_LDADD = doveadm-util.o $(test_libs) $(MODULE_LIBS)
This is only used in the test-doveadm-util rule:
test-doveadm-util$(EXEEXT): $(test_doveadm_util_OBJECTS)
$(test_doveadm_util_DEPENDENCIES) $(EXTRA_test_doveadm_util_DEPENDENCIES) @rm -f test-doveadm-util$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_doveadm_util_OBJECTS) $(test_doveadm_util_LDADD) $(LIBS)
So the problem is that doveadm-util.o needs to be an explicit dependency for test-doveadm-util.
I believe one possible fix would be to add doveadm-util.o to test_doveadm_util_DEPENDENCIES:
test_doveadm_util_DEPENDENCIES = $(test_deps)
bug this isn't something that can easily tested.
Craig
On 10 Oct 2017, at 3.47, Craig Leres <leres@ee.lbl.gov> wrote:
I use dovecot under FreeBSD 10.3 and build using poudriere. My build server has 12 cores builds typically happen in parallel and I find software that is not parallel make friendly will fail once every month or so.
Attached is a build log from this afternoon that failed because doveadm-util.o had not finished building when the attempt to link test-doveadm-util happened.
Looking in src/doveadm/Makefile* in the build tree the only place I see doveadm-util.o is in a make variable:
test_doveadm_util_LDADD = doveadm-util.o $(test_libs) $(MODULE_LIBS)
This is only used in the test-doveadm-util rule:
test-doveadm-util$(EXEEXT): $(test_doveadm_util_OBJECTS) $(test_doveadm_util_DEPENDENCIES) $(EXTRA_test_doveadm_util_DEPENDENCIES) @rm -f test-doveadm-util$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_doveadm_util_OBJECTS) $(test_doveadm_util_LDADD) $(LIBS)
So the problem is that doveadm-util.o needs to be an explicit dependency for test-doveadm-util.
I believe one possible fix would be to add doveadm-util.o to test_doveadm_util_DEPENDENCIES:
test_doveadm_util_DEPENDENCIES = $(test_deps)
bug this isn't something that can easily tested.
Looks like this was already fixed in master, as part of some other changes: https://github.com/dovecot/core/commit/b200bc3875fa06d42c8619865cc306c3297fc... <https://github.com/dovecot/core/commit/b200bc3875fa06d42c8619865cc306c3297fcacc>
We're planning to get v2.3 releases out in not-many-more-months, so may have to wait for it.
On 10/10/17 06:24, Timo Sirainen wrote:
Looks like this was already fixed in master, as part of some other changes: https://github.com/dovecot/core/commit/b200bc3875fa06d42c8619865cc306c3297fc...
We're planning to get v2.3 releases out in not-many-more-months, so may have to wait for it.
Perfect, thanks!
Craig
participants (2)
-
Craig Leres
-
Timo Sirainen