xine-lib-1_rc4 will not emerge using distcc. It emerges for me when I disable distcc. Reproducible: Always Steps to Reproduce: 1. emerge xine-lib Actual Results: Calculating dependencies ...done! >>> emerge (1 of 1) media-libs/xine-lib-1_rc4 to / >>> md5 src_uri ;-) xine-lib-1-rc4.tar.gz >>> Unpacking source... >>> Unpacking xine-lib-1-rc4.tar.gz to /var/tmp/portage/xine-lib-1_rc4/work * Applying protect-CFLAGS.patch-1_rc4... [ ok ] * Applying xine-lib-2.6.patch... [ ok ] * Applying xine-lib-gcc34.patch... [ ok ] * Patching ${S}/ltmain.sh... * Applying portage-1.4.1.patch... * Applying max_cmd_len-1.5.0.patch... >>> Source unpacked. x86 avi x86 configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for a BSD-compatible install... /bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for i686-pc-linux-gnu-strip... no checking for strip... strip checking for style of include used by make... GNU checking for i686-pc-linux-gnu-gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. !!! ERROR: media-libs/xine-lib-1_rc4 failed. !!! Function econf, Line 365, Exitcode 1 !!! econf failed Expected Results: A successful emerge. Portage 2.0.50-r8 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.6-epia) ================================================================= System uname: 2.6.6-epia i686 VIA Nehemiah Gentoo Base System version 1.4.16 distcc 2.13 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=i686 -msse -mmmx -mfpmath=sse -Os -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=i686 -msse -mmmx -mfpmath=sse -Os -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distcc sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j7" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X alsa apache2 apm arts avi berkdb cle266 crypt divx4linux encode gdbm gif imlib jpeg kde libg++ libwww lirc mad mikmod motif mpeg ncurses oggvorbis opengl pam pcmcia perl png qt quicktime readline samba sdl slang ssl svga truetype x86 xml2 xmms xv xvid zlib" Here is 'emerge info xine-lib' for the successful emerge: Portage 2.0.50-r8 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.6-epia) ================================================================= System uname: 2.6.6-epia i686 VIA Nehemiah Gentoo Base System version 1.4.16 distcc 2.13 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=i686 -msse -mmmx -mfpmath=sse -Os -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=i686 -msse -mmmx -mfpmath=sse -Os -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j7" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X alsa apache2 apm arts avi berkdb cle266 crypt divx4linux encode gdbm gif imlib jpeg kde libg++ libwww lirc mad mikmod motif mpeg ncurses oggvorbis opengl pam pcmcia perl png qt quicktime readline samba sdl slang ssl svga truetype x86 xml2 xmms xv xvid zlib"
Created attachment 33887 [details] The config.log file that is referenced by the failed build process
I just thought of one more thing I could include. This is the log from distccd on the machine that was running distccd: distccd[22663] (dcc_check_client) connection from 192.168.0.128:35793 distccd[22663] compile from conftest.c to conftest.o distccd[22663] (dcc_r_file_timed) 123 bytes received in 0.000155s, rate 775kB/s distccd[22663] (dcc_collect_child) cc times: user 0.000000s, system 0.010000s, 159 minflt, 511 majflt distccd[22663] gcc conftest.c on localhost failed distccd[22663] job complete
not a distcc bug: configure:2702: gcc -c -march=i686 -msse -mmmx -mfpmath=sse -Os -pipe -fomit-frame-pointer -fno-stack-protector -mno-sse2 conftest .c >&5 cc1: error: unrecognized option `-fno-stack-protector' distcc[16815] ERROR: compile on 192.168.0.131/5 failed
could you paste emerge info from 192.168.0.131
this should be fixed in the latest flag-o-matic eclass make sure all your boxes running distcc are up-to-date with `emerge sync`
192.168.0.131 is running distccd under debian sarge, so it turns out there is no emerge info to be had from that machine. ;) Is this "flag-o-matic" a gentoo patch, or is it something upstream that I can expect APT to pick up? Or do debian and gentoo simply not play nicely together? Hopefully they can be convinced to work together. 0.131 is a much more powerful system than the little EPIA media center I'm putting gentoo on. :) Anyhow, thanks for the quick response.
flag-o-matic is a Gentoo thing so as long as all your Gentoo boxes have done `emerge sync` recently, you should be ok
Did an emerge sync and tried again with distcc, and got the same error. Is the fix you mentioned in ~x86 or something? Because I am only using x86. To be specific, media-libs/xine-lib-1_rc4-r1 failed. I see an rc5 was released today (6/24), and after attempting to compile that one with distcc, I get the same failure, so I'll go ahead and reopen this bug. Please let me know if there is any more information I can give you. # ACCEPT_KEYWORDS="~x86" emerge info xine-lib Portage 2.0.50-r8 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.6-epia) ================================================================= System uname: 2.6.6-epia i686 VIA Nehemiah Gentoo Base System version 1.4.16 distcc 2.13 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=i686 -msse -mmmx -mfpmath=sse -Os -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=i686 -msse -mmmx -mfpmath=sse -Os -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distcc sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j7" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X alsa apache2 apm arts avi cle266 crypt divx4linux encode gdbm gif imlib jpeg kde libg++ libwww lirc mad mikmod motif mpeg mysql ncurses oggvorbis opengl pam pcmcia perl png qt quicktime readline samba sdl slang ssl svga truetype x86 xml2 xmms xv xvid zlib" Error: checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. !!! ERROR: media-libs/xine-lib-1_rc5 failed. !!! Function econf, Line 365, Exitcode 1 !!! econf failed distccd log file from 192.168.0.131: distccd[24924] (dcc_check_client) connection from 192.168.0.128:35747 distccd[24924] compile from conftest.c to conftest.o distccd[24924] (dcc_r_file_timed) 143 bytes received in 0.000162s, rate 862kB/s distccd[24924] (dcc_collect_child) cc times: user 0.000000s, system 0.010000s, 159 minflt, 511 majflt distccd[24924] gcc conftest.c on localhost failed distccd[24924] job complete
the info that matters is what is in config.log so please post your new one
this isnt a xine-lib bug ... it's a flag-o-matic/hardened issue
Created attachment 34081 [details] config.log for the rc5 build failure Here is the config.log from the failure using rc5. Thank you for looking into this, and of course let me know if you need more information.
I was asked to comment on this bug... It's my understanding that *all* distcc hosts need to be running more or less the exact same version of gcc. Add support for ssp to your deb host and it will go away. I think newer deb pkgs include support for it. If they don't then talk to Steve Kemp about getting it added, as he was the guy pushing for it a while ago I think over at deb. Of course as a work around you can always do MAKEOPTS="-j1" and probably will have to on any pkg that does a filter-flags -fstack-protector Random Idea... I'm not sure if lisa/spanky/other can do it but an ideal thing would be to have a list of distcc hosts that support gentoo aware flags and a list of the less than ideal hosts. Maybe something like so.. GENTOO_DISTCC_HOSTS="box1, box2, box3...." UNCOOL_DISTCC_HOSTS="box33, box44, box55 ..." Then in the flag-o-matic function we could export an enviromental variable when we are filtering said flag.. ( [ "$FILTERING_SSP" -eq 1 ] && [ "$UNCOOL_DISTCC_HOSTS" != "" ] ) && export-only-good-hosts-and-update-makeopts
Solar I'm not quite sure that is doable. The user should just have to keep the hosts in one place, /etc/distcc/hosts.
well another question here is, do we really need to append -fno-stack-protector ? why isnt removing '-fstack-protector' from the user's CFLAGS enough ?
Re comment #14 I know it was apart of the basic design for the USE=hardened concept for gcc to ensure that all cases where it's filtered a gentoo gcc host would do the right thing. The same sort of -fOPT -> -fno-OPT logic was used for filtering PIC but that proved to be flawed on some non-x86 arches where people have been blindy filtering PIC for all arches. But we have to ask pappy/peter/tseng/swtaylor for the in depth details on why we rewrite it as such if anybody is thinking about or wanting to change this behavior.
pappy: ideas ?
building multimedia apps with hardened gcc is not supported due to massive amount of assembler reworking. either talk the upstream into making their stuff PIC aware (preferably using a configure option like --no-asm) or stop trying to compile it with hardened-gcc. you can ask your friendly Gentoo developers to finally find a way for transparently managing the "defusal" of hardened gcc PIE and SSP for specific packages- either using an ENV variable other than CFLAGS, a gcc-config switch or something in portage. Whatever works for you :-) Have a nice day, WONTFIX