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 -------------- next part -------------- A non-text attachment was scrubbed... Name: dovecot-2.2.32_1.log.gz Type: application/gzip Size: 95016 bytes Desc: not available URL: <https://dovecot.org/pipermail/dovecot/attachments/20171009/a848be63/attachment-0001.gz>
On 10 Oct 2017, at 3.47, Craig Leres <leres at 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/b200bc3875fa06d42c8619865cc306c3297fcacc <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/b200bc3875fa06d42c8619865cc306c3297fcacc > > We're planning to get v2.3 releases out in not-many-more-months, so may > have to wait for it.Perfect, thanks! Craig