I've upgraded my GCC to 4.3.2 (from the Gentoo portage tree) and set it to be my default system compiler. Today after emerge --sync and emerge -uD world, this happened while trying to compile vsftpd: i686-pc-linux-gnu-gcc -c sysdeputil.c -O2 -march=i686 -pipe -idirafter dummyinc sysdeputil.c:520: error: conflicting types for 'capset' sysdeputil.c:166: error: previous definition of 'capset' was here make: *** [sysdeputil.o] Error 1 * * ERROR: net-ftp/vsftpd-2.1.0 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2139: Called die * The specific snippet of code: * emake CFLAGS="${CFLAGS}" CC="$(tc-getCC)" || die * The die message: * (no error message) * * 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/net-ftp/vsftpd-2.1.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-ftp/vsftpd-2.1.0/temp/environment'. * Compiling vsftpd works with the previous Gentoo version of GCC (I think it was 4.1). Reproducible: Always Steps to Reproduce: 1. Set your system default compiler to gcc 4.3.2 (gcc-config i686-pc-linux-gnu-4.3.2). 2. Do an emerge --sync. 3. Do an emerge vsftpd. Actual Results: i686-pc-linux-gnu-gcc -c sysdeputil.c -O2 -march=i686 -pipe -idirafter dummyinc sysdeputil.c:520: error: conflicting types for 'capset' sysdeputil.c:166: error: previous definition of 'capset' was here make: *** [sysdeputil.o] Error 1 * * ERROR: net-ftp/vsftpd-2.1.0 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2139: Called die * The specific snippet of code: * emake CFLAGS="${CFLAGS}" CC="$(tc-getCC)" || die * The die message: * (no error message) * * 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/net-ftp/vsftpd-2.1.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-ftp/vsftpd-2.1.0/temp/environment'. * Expected Results: Properly installed new version of vsftpd.
$ gcc -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.3.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --disable-libgcj --with-arch=i686 --enable-languages=c,c++,treelang,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.2-r3 p1.6, pie-10.1.5' Thread model: posix gcc version 4.3.2 (Gentoo 4.3.2-r3 p1.6, pie-10.1.5)
It does not look like a gcc 4.3 failure. More info, please: - output of 'emerge -1pv net-ftp/vsftpd' - output of 'equery l libcap'
# emerge -1pv net-ftp/vsftpd These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] net-ftp/vsftpd-2.1.0 [2.0.7-r1] USE="pam ssl tcpd -caps (-selinux) -xinetd" 175 kB Total: 1 package (1 upgrade), Size of downloads: 175 kB equery l libcap [ Searching for package 'libcap' in all categories among: ] * installed packages [I--] [M ] sys-libs/libcap-1.10-r11 (0)
Indeed, you were right - it is not a GCC version issue. I just emerged libcap, and this has brought in sys-libs/libcap-2.16. After that, vsftpd did compile and install. However, if that is a required dependency, I assumed that emerge -uD world would have taken care of that...
It seems, that the patch that makes it an optional dep is not quite correct. But it's in maintainer-needed, so it's not that surprising.
Created attachment 192846 [details, diff] Update of existing vsftp-2.1.0 patch for vsftp-2.1.1 FYI, I've attached an updated version of the existing "vsftpd-2.1.0-dont-link-caps.patch" that works with vsftpd-2.1.1.
Since libcap-1 is gone from the tree, i've forced the depend on libcap-2.