Compilation fails on libavformat/file.c, presumably because there is a bad #include for io.h or something. Reproducible: Always Steps to Reproduce: 1. emerge ffmpeg Actual Results: i686-pc-linux-gnu-gcc -DHAVE_AV_CONFIG_H -I. -I"/home/portage/media-video/ffmpeg-0.5_p20373/work/ffmpeg-0.5_p20373" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -O2 -march=pentium-m -pipe -fomit-frame-pointer -fomit-frame-pointer -march=pentium-m -std=c99 -fomit-frame-pointer -fPIC -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -MMD -MF libavformat/file.d -MT libavformat/file.o -c -o libavformat/file.o libavformat/file.c libavformat/file.c:26:16: warning: io.h: No such file or directory libavformat/file.c:26:16: warning: io.h: No such file or directory libavformat/file.c: In function ‘pipe_open’: libavformat/file.c:117: warning: implicit declaration of function ‘setmode’ libavformat/file.c:117: error: ‘O_BINARY’ undeclared (first use in this function) libavformat/file.c:117: error: (Each undeclared identifier is reported only once libavformat/file.c:117: error: for each function it appears in.) make: *** [libavformat/file.o] Error 1 Expected Results: Successful emerge. Portage 2.1.6.13 (default/linux/x86/10.0/desktop, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.31-gentoo-r6 i686) ================================================================= System uname: Linux-2.6.31-gentoo-r6-i686-Intel-R-_Pentium-R-_M_processor_1.86GHz-with-gentoo-1.12.13 Timestamp of tree: Tue, 12 Jan 2010 13:45:02 +0000 distcc 3.1 i686-pc-linux-gnu [enabled] app-shells/bash: 4.0_p35 dev-java/java-config: 2.1.9-r2 dev-lang/python: 2.6.4 dev-util/cmake: 2.6.4-r3 sys-apps/baselayout: 1.12.13 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 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: 2.2.6b virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /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="-O2 -march=pentium-m -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="distcc distlocks fixpackages parallel-fetch prelink protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://ftp.iinet.net.au/pub/Gentoo " LANG="en_AU.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="en_AU en_AU.UTF-8 en_GB en_GB.UTF-8" MAKEOPTS="-j6" 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="/home" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/layman/x11 /usr/local/portage/layman/kde-sunset /usr/local/portage/layman/kde /usr/local/portage" SYNC="rsync://rsync.au.gentoo.org/gentoo-portage" USE="X a52 aac aalib acpi alsa bash-completion berkdb branding bzip2 cairo cddb cdr cli consolekit cracklib crypt cups curl cxx dbus djvu dri dts dv dvb dvd dvdr emboss encode exif expat fam ffmpeg fftw flac fontconfig fortran gd gdbm gif gmp gnome gnutls gphoto2 gpm graphviz gstreamer gtk hal iconv icu ieee1394 imagemagick imlib ipod ipv6 java java5 java6 javascript jpeg kde kqemu lame laptop latex ldap libnotify libsamplerate lirc lzo mad matroska mikmod mmap mmx mng modules mp3 mp4 mpeg mplayer mudflap musepack ncurses nls nptl nptlonly nsplugin offensive ogg openal opengl openmp pam pch pcre pdf perl png ppds pppd python qt3support qt4 quicktime readline reflection samba sdl session sharedmem sndfile spell spl sqlite sqlite3 sse sse2 ssl startup-notification subversion svg sysfs syslog taglib tcpd theora threads thunar tiff timidity truetype unicode usb vorbis wavpack wifi win32codecs wmf wxwindows x264 x86 xcb xcomposite xml xorg xpm xscreensaver xulrunner xv xvid xvmc zlib" ALSA_CARDS="intel8x0" 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 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" CAMERAS="ptp2" ELIBC="glibc" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_AU en_AU.UTF-8 en_GB en_GB.UTF-8" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="radeon" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
I should mention that this compiled fine on my amd64 platform machine, it's just on x86 that it is failing. The amd64 machine is different in that it has glibc-2.10 and gcc-4.4.
Looks like the difference was it: now that I've upgraded glibc on the x86 to 2.10, ffmpeg compiles fine.
Patrick, do you mean that it works for you using glibc-2.9 or some other version?
This appears to be an issue with distcc's pump mode.