Summary: | =net-dns/djbdns-1.05-r29: parallel make failure | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Mike Williams <mike> |
Component: | [OLD] Server | Assignee: | Michael Orlitzky <mjo> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Mike Williams
2014-07-19 21:21:59 UTC
(In reply to Mike Williams from comment #0) > With MAKEOPTS=-j2 the build fails as uint32.h hasn't been created yet. > I'd imagine anything greater than 2 would suffer the same. > Actually with -j4 and higher it works! I was able to reproduce the failure with -j2 though. I'll dig further this afternoon. (In reply to Michael Orlitzky from comment #1) > (In reply to Mike Williams from comment #0) > > With MAKEOPTS=-j2 the build fails as uint32.h hasn't been created yet. > > I'd imagine anything greater than 2 would suffer the same. > > > > Actually with -j4 and higher it works! I was able to reproduce the failure > with -j2 though. I'll dig further this afternoon. So it does! I've found a possible solution. djbdns-1.05-test25.diff.bz2 adds this; +clientloc.o: \ +compile clientloc.c open.h byte.h cdb.h ip6.h + ./compile clientloc.c + Adding uint32.h to that make the build work even with -j2. # diff -u /usr/portage/net-dns/djbdns/djbdns-1.05-r29.ebuild.orig /usr/portage/net-dns/djbdns/djbdns-1.05-r29.ebuild --- /usr/portage/net-dns/djbdns/djbdns-1.05-r29.ebuild.orig 2014-07-20 15:42:35.100906577 +0100 +++ /usr/portage/net-dns/djbdns/djbdns-1.05-r29.ebuild 2014-07-20 15:52:44.694868450 +0100 @@ -62,6 +62,7 @@ # USE=ipv6, we're in the ${S}-noipv6 directory at this point. epatch "${FILESDIR}/${PV}-errno.patch" + use ipv6 && cd - epatch_user } # cat /etc/portage/patches/net-dns/djbdns-1.05-r29/clientloc.c-uint32.h.patch --- Makefile.orig 2014-07-20 15:32:32.482661686 +0100 +++ Makefile 2014-07-20 15:31:56.234216598 +0100 @@ -212,7 +212,7 @@ chmod 755 choose clientloc.o: \ -compile clientloc.c open.h byte.h cdb.h ip6.h +compile clientloc.c open.h byte.h cdb.h ip6.h uint32.h ./compile clientloc.c compile: \ # The "use ipv6 && cd -" is to get out of the ${S}-noipv6 to patch the right Makefile. Going up one directory might be better. > > I've found a possible solution. > > djbdns-1.05-test25.diff.bz2 adds this; > > +clientloc.o: \ > +compile clientloc.c open.h byte.h cdb.h ip6.h > + ./compile clientloc.c > + > > Adding uint32.h to that make the build work even with -j2. > Thanks, that looks like the right fix. I just pushed an update in-place, so it should show up in 24 hours or so, but not bother people who already managed to install it: 21 Jul 2014; Michael Orlitzky <mjo@gentoo.org> +files/makefile-parallel-test25.patch, djbdns-1.05-r29.ebuild: Fix parallel build of clientloc.o, bug #517538. Original report and fix by Mike Williams. The clientloc.o target was added recently as part of the new ipv6 patch in djbdns -r29. We had a bunch of parallel build fixes for ipv6 in makefile-parallel.patch already, so what I wanted to do was just update the patch -- unfortunately that broke earlier revisions. So instead I duplicated the whole makefile patch: as soon as -r29 is stable everywhere, I'm going to get rid of the old revisions anyway leaving only -r29. |