emerge =dev-libs/klibc-1.5.12-r1 build fails with references to "exit.c:29: undefined reference to '_exit'" etc. Further back "i386_defconfig:13: trying to assign nonexistent symbol SEMAPHORE_SLEEPERS" Reproducible: Always Steps to Reproduce: emerge klibc-1.5.12-r1 Actual Results: Failed build Expected Results: klibc installed emerge --info Portage 2.1.6.4 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.27-gen too-r7 i686) ================================================================= System uname: Linux-2.6.27-gentoo-r7-i686-VIA_Nehemiah-with-glibc2.0 Timestamp of tree: Mon, 05 Jan 2009 19:30:01 +0000 distcc 3.0 i686-pc-linux-gnu [disabled] ccache version 2.4 [disabled] app-shells/bash: 3.2_p33 dev-lang/python: 2.4.4-r13, 2.5.2-r7 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.61-r2 sys-devel/automake: 1.4_p6, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe -msse -mmmx -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/init.d /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -march=i686 -pipe -msse -mmmx -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms str ict unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://ftp.mirrorservice.org/sites/www.ibiblio.org/gentoo/ http:/ /www.mirrorservice.org/sites/www.ibiblio.org/gentoo/" LANG="en_GB.utf8" LDFLAGS="-Wl,-O1" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclu de=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="aac acl alsa apache2 avc berkdb bzip2 cdr cle266 cli cmov cracklib crypt dg a dri dts dvb dvd dvdr dvdread encode esd fftw fortran fpu fsxr gdbm gpm iconv i sdnlog lirc mad midi mmx msr mtrr mudflap ncurses nls nptl nptlonly opengl openm p pam pcre perl pppd python readline reflection session spl sse sse2 ssl symlink sysfs tcpd unichrome unicode v4l x264 x86 xorg xv xvid xvmc zlib" ALSA_CARDS="v ia82xx" 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 p lug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth n_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default au thz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_l ock deflate dir disk_cache env expires ext_filter file_cache filter headers incl ude info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEV ICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd 44780 lb216 lcdm001 mtxorb ncurses text" LIRC_DEVICES="mceusb" USERLAND="GNU" VI DEO_CARDS="fbdev via vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, LI NGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTD IR_OVERLAY
I notice that klibc-1.5.12-r1 pulls down linux-2.6.26.tar.bz2 the kernel in use is 2.6.27-gentoo-r7 I'm not sure if that is significant.
cd /usr/src/linux make i386_defconfig emerge klibc #Now klibc installs OK. #However, during install it complains with "chmod: cannot operate on dangling symlink '/var/tmp/portage/dev-libs/klibc-1.5.12-r1/image//usr/lib/klibc/include/asm'" make all #Lots of questions get asked. ^C out of that. make menuconfig # Do nothing just exit make all #all gets made make install & make modules_install #all installed reboot #Oops! Kernel Panic
I had the same issue here on two boxes, but setting FEATURES="-distcc -ccache" allowed klibc to compile.
Need to defeat ccache during emerge klibc. Confirmed.
Need to bypass ccache during emerge to eliminate stale includes etc.
(In reply to comment #5) > Need to bypass ccache during emerge to eliminate stale includes etc. > Confirmed, need to bypass ccache AND distcc during build.
I am experiencing the same issue with sandbox-1.3.2 as well
My architecture is 64-bit as opposed to 32
(In reply to comment #1) > I notice that klibc-1.5.12-r1 pulls down linux-2.6.26.tar.bz2 the kernel in use > is 2.6.27-gentoo-r7 > I'm not sure if that is significant. > I have the same, except kernel is 2.6.28-tuxonice-r1. The build fails !!!
(In reply to comment #9) > (In reply to comment #1) > > I notice that klibc-1.5.12-r1 pulls down linux-2.6.26.tar.bz2 the kernel in use > > is 2.6.27-gentoo-r7 > > I'm not sure if that is significant. > > > > I have the same, except kernel is 2.6.28-tuxonice-r1. The build fails !!! > Changed FEATURES and perfect ... except: msg: chmod: cannot operate on dangling symlink `/var/tmp/portage/dev-libs/klibc-1.5.12-r1/image//usr/lib/klibc/include/asm' Can not have everything ...
Have tried multiple versions of klibc, have attempted FEATURES="-sandbox", to no effect. FEATURES="-distcc" fixes all problems for me, for klibc 1.5.8 and 1.5.12, build succeeds with no errors. FEATURES="ccache" works fine, as long as FEATURES="-distcc"
same here (amd64): Feature ccache is ok, feature distcc breaks the build.
I've encountered this bug and the workaround appears to work. Can distcc be disabled for this ebuild?
Please retest with 1.5.15 and ccache+distcc enabled. I suggest forcing ccache to CCACHE_RECACHE the first time, and then running again thereafter. defconfig is run with the used kernel sources as well (NOT the copy in /usr/src/linux).
ccache works fine, but klibc-1.5.15 still can't be built with FEATURES=distcc. Probably that's caused by difference of gcc versions - I have 4.3.3-r2 on local machine and 4.3.2-r3 on remote. Besides undefined references there was also this: /bin/sh: line 1: 26484 Segmentation fault i686-pc-linux-gnu-gcc -Wp,-MD,usr/klibc/syscalls/.syscalls.nrs.d -nostdinc -iwithprefix include -Iusr/include/arch/i386 -Iusr/include/bits32 -Iusr/klibc/../include -Iusr/include -Ilinux/include -D__KLIBC__=1 -D__KLIBC_MINOR__=5 -D_BITSIZE=32 -fno-stack-protector -mregparm=3 -D_REGPARM=3 -m32 -march=i386 -Os -g -fomit-frame-pointer -falign-functions=0 -falign-jumps=0 -falign-loops=0 -W -Wall -Wno-sign-compare -Wno-unused-parameter -I/var/tmp/portage/dev-libs/klibc-1.5.15/work/klibc-1.5.15/usr/klibc/syscalls -Wp,-dM -x c -E -o usr/klibc/syscalls/syscalls.nrs usr/include/sys/syscall.h Errors are exactly the same with and without FEATURES=ccache
help@imtrappedininter.net: distcc explicitly warns you to have the same version. The segfault also says there's something wrong with your system anyway. As a related test, change distcc to use only the local machine, but leave it enabled. The results should be _identical_ to not using distcc.
Well, that's the only package I'm having problems with so far, and it so happens that it's the package that had (or rather has) known problems with distcc. Major versions of gcc are the same, so it shouldn't be a problem IMHO. Anyway I tested with only localhost in /etc/distcc/hosts and it failed exactly like when I used 2 machines (segmentation fault including). Segfault would be sign of problems with hardware if it haven't been happenning every time in the same place. Here is my emerge --info: Portage 2.2_rc33 (default/linux/x86/2008.0/desktop, gcc-4.3.3, glibc-2.9_p20081201-r2, 2.6.26.2 i686) ================================================================= System uname: Linux-2.6.26.2-i686-Intel-R-_Pentium-R-_M_processor_1500MHz-with-gentoo-2.0.0 Timestamp of tree: Wed, 13 May 2009 20:30:03 +0000 distcc 3.1 i686-pc-linux-gnu [enabled] ccache version 2.4 [enabled] app-shells/bash: 4.0_p17-r1 dev-lang/python: 2.6.2 dev-python/pycrypto: 2.0.1-r8 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.6.4 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.4.3-r2 sys-apps/sandbox: 1.9 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.19.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.29 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium-m -fomit-frame-pointer -ftracer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -march=pentium-m -fomit-frame-pointer -ftracer -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps y" FEATURES="buildpkg ccache distcc distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://vesnet/ http://mirror.yandex.ru/gentoo-distfiles/" LDFLAGS="-Wl,-O1" MAKEOPTS="-j4" 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/local/portage /usr/local/portage/layman/alon-barlev /usr/local/portage/layman/pro-audio" SYNC="rsync://server/gentoo-portage/" USE="X a52 aac acpi adns alsa aspell audiofile bash-completion berkdb bzip2 cairo caps cdparanoia cracklib crypt cscope cups curl cxx dbus djvu dri dts dvb dvd dvdread encode exif expat faac faad fam fbcon ffmpeg fftw flac fltk fontconfig foomaticdb ftp gd gdbm gif gimp glib gmp gpm graphviz gtk gtk2 iconv id3tag idn imagemagick imap imlib ipv6 jack javascript jpeg ladspa lame lash lcms libsamplerate mad matroska mbox midi mmap mmx mmxext mng mp3 mpeg ncurses nls nocd nptl nsplugin offensive ogg opengl pam pcre pdf perl pic png ppds pulseaudio python qt3support qt4 quicktime raw readline ruby sasl sdl session slang sndfile speex spell sqlite sse sse2 ssl svg tcl tcltk tcpd theora threads tiff timidity tk truetype unicode usb videos vim-syntax vorbis wifi win32codecs x264 x86 xcb xface xml xosd xpm xulrunner xv xvid zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon 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 deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="intel" Unset: CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
I can confirm that this happens with distcc, both when using hosts with the exact same compiler versionk, and when distcc is set to only use localhost. In other words, parafin's difference in compiler versions between the two hosts is a red herring. Also, "The segfault also says there's something wrong with your system anyway" is a false statement. It's not an universal truth -- a package that needs to execute its own binaries while building can segfault without there being anything wrong on the system it runs on -- only the package's own code. In this case, however, there's something wrong with his system that isn't specific to his system -- it affects many (and probably all) systems with distcc. # pwd /var/tmp/portage/dev-libs/klibc-1.5.12-r1/work/klibc-1.5.12 # i686-pc-linux-gnu-gcc -Wp,-MD,usr/klibc/syscalls/.syscall s.nrs.d -nostdinc -iwithprefix include -Iusr/include/arch/i386 -Iusr/include/bi ts32 -Iusr/klibc/../include -Iusr/include -Ilinux/include -D__KLIBC__=1 -D__KLI BC_MINOR__=5 -D_BITSIZE=32 -fno-stack-protector -mregparm=3 -D_REGPARM=3 -m32 - march=i386 -Os -g -fomit-frame-pointer -falign-functions=0 -falign-jumps=0 -fal ign-loops=0 -W -Wall -Wno-sign-compare -Wno-unused-parameter -I/var/tmp/portage /dev-libs/klibc-1.5.12-r1/work/klibc-1.5.12/usr/klibc/syscalls -Wp,-dM -x c -E -o usr/klibc/syscalls/syscalls.nrs usr/include/sys/syscall.h kether klibc-1.5.12 # DISTCC_VERBOSE=1 DISTCC_HOSTS=localhost distcc i686-pc-li nux-gnu-gcc -Wp,-MD,usr/klibc/syscalls/.syscalls.nrs.d -nostdinc -iwithprefix i nclude -Iusr/include/arch/i386 -Iusr/include/bits32 -Iusr/klibc/../include -Ius r/include -Ilinux/include -D__KLIBC__=1 -D__KLIBC_MINOR__=5 -D_BITSIZE=32 -fno- stack-protector -mregparm=3 -D_REGPARM=3 -m32 -march=i386 -Os -g -fomit-frame-p ointer -falign-functions=0 -falign-jumps=0 -falign-loops=0 -W -Wall -Wno-sign-c ompare -Wno-unused-parameter -I/var/tmp/portage/dev-libs/klibc-1.5.12-r1/work/k libc-1.5.12/usr/klibc/syscalls -Wp,-dM -x c -E -o usr/klibc/syscalls/syscalls.n rs usr/include/sys/syscall.h distcc[13729] (dcc_trace_version) distcc 3.1 i686-pc-linux-gnu; built May 16 200 9 12:04:47 distcc[13729] (dcc_recursion_safeguard) safeguard level=0 distcc[13729] (main) compiler name is "distcc" Segmentation fault This bug should not be left as "resolved". Reassigned to distcc team, perhaps, but it is indeed a bug that affects a great number of people.
RESO:TEST-REQUEST is what I use when it's practically impossible to proceed without further input and testing from the user. Per your comment there now that has a very nice testcase that works on your machine, and you please produce a gdb backtrace for your system?
1.5.15-r1 version is out, the problem remains. Kind of "ping" comment.
I asked for a gdb backtrace, We can't do anything in terms of fixing distcc/ccache until I get one. Removing kernel-misc, as it's really a distcc problem.
OK, I hope I did everything right, here goes backtrace: #0 0x4da3cd63 in strncmp () from /lib/libc.so.6 #1 0x08051dd5 in str_startswith (head=0x805a97b "-Wp,", worm=0x31 <Address 0x31 out of bounds>) at src/util.c:102 #2 0x0804ea43 in dcc_expand_preprocessor_options (argv_ptr=0xbfa4a2cc) at src/arg.c:496 #3 0x0804b483 in dcc_build_somewhere_timed (argv=0x916c020, sg_level=0, status=0xbfa4a344) at src/compile.c:488 #4 0x0804c583 in main (argc=745559853, argv=0xbfa4a3f4) at src/distcc.c:285
Looks like a good back trace to me. ;-)
I found out that setting makeopts to -j larger than 1(you know what I mean ;) ) could cause this problem.
(In reply to comment #24) > I found out that setting makeopts to -j larger than 1(you know what I mean ;) ) > could cause this problem. > I suspect that distcc doesn't get involved until -j >1. I would suggest that this ebuild must not use distcc. If you -distcc in FEATURES it works every time. This bug's been open,for long enough. Even if it Is not the ideal solution, this build must not use distcc.
FYI: There are several packages within Portage that break with this distcc bug. To the best of my knowledge (from memory), this bug is not just specific to klibc. I think there's at least 2-3+ other packages, and I haven't used distcc myself because it kept breaking during my weekly emerge -uDN world here. Sorry for the lack of info, I've just been way too busy here!
Not much to add here, except same problem. emerge klibc fails with distcc enabled, succeeds when distcc is turned off. distcc may indeed be broken, but as it is a useful utility, it may be more expedient to just disable distcc in the klibc ebuild (and others that distcc causes problems with) instead of leaving a bug open for a year.
I second the suggestion within Comment #27, as this bug has been seemingly opened forever.
(In reply to comment #28) > I second the suggestion within Comment #27, as this bug has been seemingly > opened forever. > In building a new system, I added a local overlay and copied the latest klibc ebuild over, added FEATURES="-distcc" and bumped the revision to "r99" to work around this. Worked for me.
@Roger: I hacked a fix in my system that is more expedient than "Right" but it has the advantage of being adaptable, and easy. 1. create /etc/portage/bashrc: /etc/portage/bashrc: [ -r ${ROOT}/etc/portage/package.nodistcc ] || return 0 while read -a target; do if [ "${target}" = "${CATEGORY}/${PN}" ]; then export FEATURES="${FEATURES/distcc/}" fi done < ${ROOT}/etc/portage/package.nodistcc Next, add a file /etc/portage/package.nodistc: /etc/portage/package.nodistcc: dev-libs/klibc As we find packages that are broken with distcc (or vice-versa) we can add them to the .nodistcc file. If they start working, we can remove them. Sorry this took so long for me to post, I've had it up here for a bit now. Perhaps the distcc folks could incorporate this hack in a cleaner fashion?
(In reply to comment #30) > @Roger: I hacked a fix in my system that is more expedient than "Right" but it > has the advantage of being adaptable, and easy. --cut-- > Perhaps the distcc folks could incorporate this hack in a cleaner fashion? what about: 1: /etc/portage/package.env # List of packages to build without distcc, followed by the env file sourced dev-libs/klibc nodistcc.conf 2: /etc/portage/env/nodistcc.conf # Environment overrides FEATURES="-distcc"
What about adding FEATURES="-distcc" to ebuild, it's not hard at all, is it? So why this bug hangs here for 2.5 years making people spend their time for useless investigations why their systems are broken?
At one time, I had what could be called a good reason ;-) After so long, I can't remember it exactly, but I think it had something to do with packages that are broken like this one (or distcc is broken with, whatever) getting the -distcc flag and then later, if things ever worked, the -distcc flag never being removed. Also, it was more in the way of having a centralized list of packages that are flagged -distcc without having to hunt and search for them.
(In reply to comment #33) > it had something to do with packages > that are broken like this one (or distcc is broken with, whatever) getting the > -distcc flag and then later, if things ever worked, the -distcc flag never > being removed. My personal opinion is that its better to have package that doesn't take advantage of distcc than package that breaks, especially when it breaks with non-obvious error messages. Anyway not removing -distcc when things got fixed is separate issue.
I assumed that when klibc-1.5.20 was recently marked stabled, this issue would have been fixed. This is now the second time I've hit this issue and this bug is still open after more than 2 years. Even if we currently don't have a real fix, there is a perfectly good workaround. Can we please have distcc disabled for klibc?
Just hit this bug on all my machines doing upgrade to 1.5.20 with FEATURES="distcc" enabled. Luckily there's quite a simple workaround FEATURES="-distcc" emerge -va klibc.
Please retest on klibc-2.0.3, so we can stabilize the new series and drop the 1.5 series if all tests are good.