If distcc is enabled, kbuild fails the bootstrap part of emerging. Reproducible: Didn't try Steps to Reproduce: 1. Enable distcc with FEATURES="distcc" 2. emerge kbuild (Version 0.1.4) 3. Wait until it fails Actual Results: Failing in the bootstrap run, according to the error message. Expected Results: Compile seamlessly. When deactivating distcc (e.g. FEATURES="-distcc" emerge kbuild) it compiles fine. Simply deactivating distcc in the ebuild should fix all related problems.
No error message provided, impossible to identify the problem.
### emerge --info ### Portage 2.1.6.11 (default/linux/x86/2008.0, gcc-4.3.2, glibc-2.8_p20080602-r1, 2.6.27-gentoo-r10 i686) =================================================================System uname: Linux-2.6.27-gentoo-r10-i686-VIA_Esther_processor_1000MHz-with-glibc2.0Timestamp of tree: Fri, 05 Jun 2009 00:45:02 +0000distcc 3.0 i686-pc-linux-gnu [enabled]ccache version 2.4 [enabled]app-shells/bash: 3.2_p39dev-java/java-config: 1.3.7-r1, 2.1.7dev-lang/python: 2.4.6, 2.5.4-r2dev-util/ccache: 2.4-r7dev-util/cmake: 2.6.4 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.63 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=i686 -mmmx -msse -msse2 -mmmx -Os -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=i686 -mmmx -msse -msse2 -mmmx -Os -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distcc distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/" LANG="de_DE@euro" LC_ALL="de_DE@euro" LDFLAGS="-Wl,-O1" LINGUAS="de en en_GB ru ua" MAKEOPTS="-j8" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/goboard /usr/local/portage/overlays/local" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X acl apache2 arts avahi bash-completion berkdb bzip2 cli cracklib crypt cups dri dvb fortran gdbm gpm gstramer hal iconv ipv6 isdnlog logrotate midi mmx mp3 mudflap ncurses nls nptl nptlonly opengl openmp pam pcre perl pppd python readline reflection samba session spl sse sse2 ssl sysfs tcpd unichrome unicode v4l v4l2 vim-syntax vorbis x86 xorg xvmc zeroconf zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 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" DVB_CARDS="ttpci" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en en_GB ru ua" LIRC_DEVICES="sasem usb_uirt_raw usbirboy" USERLAND="GNU" VIDEO_CARDS="vesa via" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ### emerge kbuild ### ... Making all in doc make[3]: Entering directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed/doc' Updating /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/version.texi restore=: && backupdir=".am$$" && \ am__cwd=`pwd` && cd /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc && \ rm -rf $backupdir && mkdir $backupdir && \ if (/bin/sh /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/config/missing --run makeinfo --version) >/dev/null 2>&1; then \ for f in /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.info /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.info-[0-9] /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.info-[0-9][0-9] /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.i[0-9] /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.i[0-9][0-9]; do \ if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$am__cwd"; \ if /bin/sh /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/config/missing --run makeinfo -I /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc \ -o /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.info /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.texi; \ then \ rc=0; \ cd /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc; \ else \ rc=$?; \ cd /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc && \ $restore $backupdir/* `echo ".//var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.info" | sed 's|[^/]*$||'`; \ fi; \ rm -rf $backupdir; exit $rc /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/config/help2man --name "stream editor for filtering and transforming text" \ -p sed --include /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.x ../sed/sed > /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/doc/sed.1 make[3]: Leaving directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed/doc' Making all in testsuite make[3]: Entering directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed/testsuite' make[3]: F?r das Ziel ?all? ist nichts zu tun. make[3]: Leaving directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed/testsuite' make[3]: Entering directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed' make[3]: F?r das Ziel ?all-am? ist nichts zu tun. make[3]: Leaving directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed' make[2]: Leaving directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed' make[1]: Leaving directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed' cp -f /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed/sed/sed /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/kmk/kmk_sed cp -f /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/kmk/config.h /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/kmk/config.h.linux cp -f /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/sed/config.h /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/sed/config.h.linux /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/kmk/kmk -C /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4 kmk: Entering directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4' kBuild: Pass - Build Programs kBuild: Pass - Libraries kBuild: Compiling kDep - /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/lib/kDep.c gcc: Argument f?r ?-o? fehlt distcc[13400] ERROR: compile (null) on localhost failed kmk: *** [/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/obj/kDep/kDep.o] Error 1 The failing command: @gcc -c -O2 -g -O3 -I/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/lib -DKBUILD_VERSION_MAJOR=0 -DKBUILD_VERSION_MINOR=1 -DKBUILD_VERSION_PATCH=4 -DKBUILD_OS_LINUX -DKBUILD_ARCH_X86 -Wp,-MD,/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/obj/kDep/kDep.o.dep -Wp,-MT,/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/obj/kDep/kDep.o -Wp,-MP -o /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/obj/kDep/kDep.o /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/lib/kDep.c kmk: Leaving directory `/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4' make: *** [/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/bootstrap/ts-stage2-build] Fehler 2 kBuild/env.sh: info: rc=2: make -f bootstrap.gmk * * ERROR: dev-util/kbuild-0.1.4 failed. * Call stack: * ebuild.sh, line 48: Called src_compile * environment, line 2690: Called die * The specific snippet of code: * kBuild/env.sh --full make -f bootstrap.gmk || die "bootstrap failed" * The die message: * bootstrap failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/dev-util/kbuild-0.1.4/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-util/kbuild-0.1.4/temp/environment'. * >>> Failed to emerge dev-util/kbuild-0.1.4, Log file: >>> '/var/tmp/portage/dev-util/kbuild-0.1.4/temp/build.log' ### Additional information ### Disabling FEATURES="distcc" makes it working (see prev. post)
Created attachment 194302 [details] Logfile. kBuild: Compiling kDep - /var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/src/lib/kDep.c gcc: argument to '-o' is missing distcc[1899] ERROR: compile (null) on localhost failed kmk: *** [/var/tmp/portage/dev-util/kbuild-0.1.4/work/kBuild-0.1.4/out/linux.x86/release/obj/kDep/kDep.o] Error 1
This appears to be a problem with distcc command line parsing: $ echo 'int c;' > x.c $ gcc -c x.c -Wp,-MD,x.dep -Wp,-MP -o x.o $ ls x.c x.dep x.o $ rm x.dep x.o $ distcc gcc -c x.c -Wp,-MD,x.dep -Wp,-MP -o x.o gcc: x.o: No such file or directory distcc[31536] ERROR: compile x.c on localhost failed $ ls -o x.c x.dep $ file ./-o ./-o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped $ strace -f -o foo -tt distcc gcc -c x.c -Wp,-MD,x.dep -Wp,-MP -o x.o $ grep execve foo 31420 21:50:51.215358 execve("/usr/bin/distcc", ["distcc", "gcc", "-c", "x.c", "-Wp,-MD,x.dep", "-Wp,-MP", "-o", "x.o"], [/* 54 vars */]) = 0 31421 21:50:51.230330 execve("/usr/lib/ccache/bin/gcc", ["gcc", "-c", "x.c", "-MD", "-MF", "x.dep", "-MP", "-o", "-o", "x.o"], [/* 55 vars */]) = 0 Notable changes from when I executed it to when it exec'd the next compiler: * "-Wp,-MD,x.dep" transformed to "-MD", "-MF", "x.dep" * "-Wp,-MP", "-o" transformed to "-MP", "-o", "-o", causing an output file named -o and a spurious reference to x.o, when x.o should have been the argument to the -o. I suspect the doubled -o is what broke this build. Even better, when I reordered the command to more closely match the build output, I crashed distcc: $ distcc gcc -c -Wp,-MD,x.dep -Wp,-MT,x.o -Wp,- MP -o x.o x.c Segmentation fault (core dumped) $ gdb /usr/bin/distcc core Core was generated by `distcc gcc -c -Wp,-MD,x.dep -Wp,-MT,x.o -Wp,-MP -o x.o x.c'. (gdb) bt #0 *__GI_strncmp (s1=0x411cc3 "-Wp,", s2=0x21 <Address 0x21 out of bounds>, n=4) at strncmp.c:43 #1 0x0000000000409fa7 in str_startswith () #2 0x0000000000406f0f in dcc_expand_preprocessor_options () #3 0x0000000000403df9 in dcc_build_somewhere_timed () #4 0x0000000000404d54 in main () Could someone with privilege retitle the bug to reflect that distcc mishandles certain argument sequences?
kbuild 1.5 still fails WITH distcc, and builds without distcc. And distcc crashes with even less parameters. distcc gcc -c -Wp,-MD,x.dep -Wp,-MT,x.o
*** This bug has been marked as a duplicate of bug 255371 ***