Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 517538 - =net-dns/djbdns-1.05-r29: parallel make failure
Summary: =net-dns/djbdns-1.05-r29: parallel make failure
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Michael Orlitzky
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-19 21:21 UTC by Mike Williams
Modified: 2014-07-21 01:47 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Williams 2014-07-19 21:21:59 UTC
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.

Reproducible: Always

Actual Results:  
>>> Compiling source in /var/tmp/portage/net-dns/djbdns-1.05-r29/work/djbdns-1.05 ...
make -j2 
( cat warn-auto.sh; \
echo 'main="$1"; shift'; \
echo exec "`head -n 1 conf-ld`" \
'-o "$main" "$main".o ${1+"$@"}' \
) > load
( cat warn-auto.sh; \
echo exec "`head -n 1 conf-cc`" '-c ${1+"$@"}' \
) > compile
chmod 755 load
( cat warn-auto.sh; \
echo CC=\'`head -n 1 conf-cc`\'; \
echo LD=\'`head -n 1 conf-ld`\'; \
cat find-systype.sh; \
) | sh > systype
chmod 755 compile
cat warn-auto.sh choose.sh \
| sed s}HOME}"`head -n 1 conf-home`"}g \
> choose
chmod 755 choose
./compile generic-conf.c
./compile auto-str.c
auto-str.c:7:6: warning: conflicting types for built-in function ‘puts’ [enabled by default]./compile buffer.c

./compile buffer_1.c
./compile buffer_2.c
./compile buffer_copy.c
./compile buffer_get.c
./compile buffer_put.c
./compile strerr_die.c
./compile strerr_sys.c
./compile buffer_read.c
./compile buffer_write.c
./compile error.c
./compile error_str.c
./compile ndelay_off.c
./compile ndelay_on.c
./compile open_read.c
./compile open_trunc.c
./compile openreadclose.c
./compile readclose.c
./compile seek_set.c
./choose c tryip6 haveip6.h1 haveip6.h2 > haveip6.h
( ( ./compile trylsock.c && \
./load trylsock -lsocket -lnsl ) >/dev/null 2>&1 \
&& echo -lsocket -lnsl || exit 0 ) > socket.lib
rm -f trylsock.o trylsock
./compile byte_chr.c
./compile byte_copy.c
./compile byte_cr.c
./compile byte_diff.c
./compile byte_zero.c
./compile case_diffb.c
./compile case_diffs.c
./compile case_lowerb.c
./compile fmt_ulong.c
./compile ip4_fmt.c
./compile ip4_scan.c
./compile scan_ulong.c
./compile str_chr.c
./compile str_diff.c
./compile str_len.c
./compile str_rchr.c
./compile str_start.c
./compile uint16_pack.c
./compile uint16_unpack.c
./compile ip6_fmt.c
./compile ip6_scan.c
./compile fmt_xlong.c
./compile scan_xlong.c
./choose clr trypoll iopause.h1 iopause.h2 > iopause.h
./compile droproot.c
./compile okclient.c
./choose c trydrent direntry.h1 direntry.h2 > direntry.h
./choose c trysysel select.h1 select.h2 > select.h
./compile chkshsgr.c
./compile env.c
./compile alloc.c
./compile alloc_re.c
./compile getln.c
./compile getln2.c
./compile stralloc_cat.c
./compile stralloc_catb.c
./compile stralloc_cats.c
./compile stralloc_copy.c
./compile stralloc_eady.c
./compile stralloc_num.c
./compile stralloc_opyb.c
./compile stralloc_opys.c
./compile stralloc_pend.c
./compile walldns-conf.c
./compile qlog.c
./compile rbldns-conf.c
./compile pickdns-conf.c
./compile tinydns-conf.c
./compile clientloc.c
In file included from clientloc.c:3:0:
cdb.h:6:20: fatal error: uint32.h: No such file or directory
compilation terminated.
make: *** [clientloc.o] Error 1
make: *** Waiting for unfinished jobs....
 * ERROR: net-dns/djbdns-1.05-r29::gentoo failed (compile phase):
 *   emake failed


Expected Results:  
>>> Compiling source in /var/tmp/portage/net-dns/djbdns-1.05-r29/work/djbdns-1.05 ...
make 
( cat warn-auto.sh; \
echo 'main="$1"; shift'; \
echo exec "`head -n 1 conf-ld`" \
'-o "$main" "$main".o ${1+"$@"}' \
) > load
chmod 755 load
( cat warn-auto.sh; \
echo exec "`head -n 1 conf-cc`" '-c ${1+"$@"}' \
) > compile
chmod 755 compile
( cat warn-auto.sh; \
echo CC=\'`head -n 1 conf-cc`\'; \
echo LD=\'`head -n 1 conf-ld`\'; \
cat find-systype.sh; \
) | sh > systype
( case "`cat systype`" in \
  sunos-5.*) cat hasdevtcp.h2 ;; \
  *) cat hasdevtcp.h1 ;; \
esac ) > hasdevtcp.h
( ( ./compile tryulong32.c && ./load tryulong32 && \
./tryulong32 ) >/dev/null 2>&1 \
&& cat uint32.h2 || cat uint32.h1 ) > uint32.h
...
...
... 244 line snipped ...
...
...
./compile clientloc.c
./load tinydns server.o iopause.o droproot.o tdlookup.o response.o \
qlog.o prot.o clientloc.o dns.a libtai.a env.a cdb.a alloc.a buffer.a \
unix.a byte.a  `cat socket.lib`
./compile tinydns-data.c
tinydns-data.c: In function ‘main’:
tinydns-data.c:264:2: warning: passing argument 2 of ‘uint32_unpack_big’ from incompatible pointer type [enabled by default]
In file included from tinydns-data.c:6:0:
uint32.h:9:13: note: expected ‘uint32 *’ but argument is of type ‘long unsigned int *’
tinydns-data.c:267:2: warning: passing argument 2 of ‘uint32_unpack_big’ from incompatible pointer type [enabled by default]
In file included from tinydns-data.c:6:0:
uint32.h:9:13: note: expected ‘uint32 *’ but argument is of type ‘long unsigned int *’
tinydns-data.c:270:2: warning: passing argument 2 of ‘uint32_unpack_big’ from incompatible pointer type [enabled by default]
In file included from tinydns-data.c:6:0:
uint32.h:9:13: note: expected ‘uint32 *’ but argument is of type ‘long unsigned int *’
tinydns-data.c:273:2: warning: passing argument 2 of ‘uint32_unpack_big’ from incompatible pointer type [enabled by default]
In file included from tinydns-data.c:6:0:
uint32.h:9:13: note: expected ‘uint32 *’ but argument is of type ‘long unsigned int *’
tinydns-data.c:276:2: warning: passing argument 2 of ‘uint32_unpack_big’ from incompatible pointer type [enabled by default]
In file included from tinydns-data.c:6:0:
uint32.h:9:13: note: expected ‘uint32 *’ but argument is of type ‘long unsigned int *’
./load tinydns-data cdb.a dns.a alloc.a buffer.a unix.a \
byte.a 
./compile tinydns-get.c
...
...
... 83 lines snipped ...
...
...
 * Compiling dnstrace without ipv6 support
...
...
...
>>> Source compiled.


Portage 2.2.8-r1 (default/linux/amd64/13.0, gcc-4.7.3, glibc-2.17, 3.12.13-gentoo x86_64)
=================================================================
System uname: Linux-3.12.13-gentoo-x86_64-Intel-R-_Core-TM-_i5-3450S_CPU_@_2.80GHz-with-gentoo-2.2
KiB Mem:     2043452 total,   1426536 free
KiB Swap:    1048572 total,   1048572 free
Timestamp of tree: Sat, 19 Jul 2014 20:15:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.6, 3.3.3
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6, 1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.13 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo bitcoin hacking-gentoo gaima comodo 32bit 2011 coins
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA PUEL dlj-1.1 googleearth AdobeFlash-10 AdobeFlash-10.1 AdobeFlash-10.3 AdobeFlash-11.x skype-eula Oracle-BCLA-JavaSE skype-4.0.0.7-copyright google-chrome MakeMKV-EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-mtune=generic -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind /var/lib/hsqldb /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo"
CXXFLAGS="-mtune=generic -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg candy config-protect-if-modified distlocks ebuild-locks fixlafiles news nodoc noinfo parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.switch.ch/ftp/mirror/gentoo/"
LANG="en_GB.utf8"
LC_ALL="en_GB.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages/64desk"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--filter='clear' --exclude=/packages --exclude=/distfiles"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/bitcoin /usr/portage/local/layman/hacking-gentoo /usr/portage/local/layman/gaima /usr/portage/local/layman/comodo /usr/portage/local/layman/32bit /usr/portage/local/layman/2011 /usr/portage/local/layman/gentoo-overlays-coins"
SYNC="rsync://freegan.home.gaima.co.uk/gentoo-portage"
USE="3dnow 3dnowext X a52 aac aacplus aacs aalib acl addition addressbook ads aften akonadi alsa amd64 apache2 apng asf audiofile augeas bash-completion bcmath berkdb bittorrent bzip2 cairo calendar caps cdb cdda cddb cdparanoia cgi chipcard chm cjk cleartype cli clucene consolekit cpudetection cracklib crypt css cups curl cxx dbus declarative device-mapper diff dirac dlz dri dts dvd dvdr dynamic ebook embedded emboss encode evo exif extensions extras faac fastcgi fat fbcondecor fbsplash ffmpeg firefox flac flv fontconfig fortran fping fpm ftp fts3 fuse g3dvl gd gdbm gencertdaily geoip geolocation gif gimp gles2 glitz gmp gnokii google googledrive gphoto2 gpm gps grammar groupwise gstreamer gtk gudev hbci highlight history hpijs hpn hvm hwdb iconv icu idn ieee1394 imagemagick imap imlib innodb inquisitio ios iphone ipod iproute2 ipv6 irc irda jack java javascript jpeg justify kde kdepim kig-scripting kipi kvm lame laptop lcms ldap less libcaca libnotify librsync-bundled libvirtd lightning live logrotate lvm lzma mad mdns-bundled mhash mikmod minizip mmap mmx mmxext mng mod modules moonlight mozdevelop mozdom mozilla mp3 mp4 mpeg mplayer msn mtp multilib multipath multiuser musicbrainz mysql mythtv nano-syntax ncurses network nfs nls noauthcram npp nptl nsplugin nss ntp nxclient offensive offlinehelp ofx ogg old-output openct openexr opengl openmp openssl openxml opus otr pam parted passwordsave pcmcia pcntl pcre pda pdf pdo perl phonon php pic pink pkcs11 plasma pm-utils png policykit postgres postscript ppds pygrub pyqt4 python qemu qt-faststart qt-static qt3support qt4 quicktime rdesktop rdesktop-vrdp rdp readline realip rss rtmp rtsp ruby samba savedconfig schroedinger screen script sdl semantic-desktop server session shadow shout sip skype slang slp smartcard smime smp sms sndfile soap sockets spell sql sqlite sqlite3 srt sse sse2 ssl ssse3 startup-notification static-gzip static-libs status stream subversion suid svg syslog sysvipc taglib tcpd theora thesaurus threads thumbnail tidy tiff tk transcode truetype trusted unicode upcall urandom usb utils uvm vaapi vboxwebsrv vdpau video vim vim-syntax vimeo virt-network virtualbox virtuoso vlc vnc vorbis vpx wav webgl webkit webm wifi winbind winpopup wmf wpg wxwidgets x264 xcb xcomposite xen xine xinerama xml xmlreader xmlrpc xmlwriter xmp xosd xrandr xscreensaver xsl xulrunner xv xvid xvmc youtube zip zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="emu ieee1275 coreboot multiboot efi-32 pc qemu efi-64" INPUT_DEVICES="keyboard mouse evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer nlpsolver pdfimport wiki-publisher" NGINX_MODULES_HTTP="access auth_basic autoindex browser cache_purge charset empty_gif fastcgi flv geo geoip gzip gzip_static headers_more limit_req limit_zone map memcached perl proxy realip referer rewrite scgi split_clients stub_status ssi sub upstream_ip_hash userid uwsgi" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby19" USERLAND="GNU" VIDEO_CARDS="intel i810 i945 v4l vesa vga fbdev nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Comment 1 Michael Orlitzky gentoo-dev 2014-07-20 12:44:52 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.
Comment 2 Mike Williams 2014-07-20 14:55:50 UTC
(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.
Comment 3 Michael Orlitzky gentoo-dev 2014-07-21 01:47:53 UTC
> 
> 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.