Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 272391 - dev-util/kbuild-0.1.4 fails to build with distcc
Summary: dev-util/kbuild-0.1.4 fails to build with distcc
Status: RESOLVED DUPLICATE of bug 255371
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: x86 Linux
: High minor (vote)
Assignee: Lars Wendler (Polynomial-C) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-03 09:20 UTC by Daniel Glaser
Modified: 2012-03-18 18:55 UTC (History)
3 users (show)

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


Attachments
Logfile. (dev-util:kbuild-0.1.4:20090611-074601.log,153.27 KB, text/plain)
2009-06-11 21:51 UTC, Nico Baggus
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Glaser 2009-06-03 09:20:23 UTC
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.
Comment 1 Diego Elio Pettenò (RETIRED) gentoo-dev 2009-06-04 18:31:24 UTC
No error message provided, impossible to identify the problem.
Comment 2 Daniel Glaser 2009-06-05 07:02:20 UTC
### 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)
Comment 3 Nico Baggus 2009-06-11 21:51:11 UTC
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
Comment 4 Kevin Pyle 2010-06-05 03:07:36 UTC
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?
Comment 5 Nico Baggus 2010-07-06 19:02:03 UTC
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
Comment 6 Pacho Ramos gentoo-dev 2012-03-18 18:55:54 UTC

*** This bug has been marked as a duplicate of bug 255371 ***