Kernel headers dont match (which is a valid reason for brctl to not compile) which causes the compile to fail. But the emerge carries on and looks to have completed the install ok, although it obviously leaves you without the brctl util. Reproducible: Always Steps to Reproduce: 1. have older kernel headers in /usr/src/linux vs what is running (I had 2.4.20- gentoo-r2 sources and was running 2.4.30). 2. emerge bridge-utils Actual Results: emerge succeeds although theres no binarys since the compile failed (emerge -p bridge-utils shows it as installed). Expected Results: emerge to fail. Output of the emerge process. www chris # emerge bridge-utils Calculating dependencies ...done! >>> emerge (1 of 1) net-misc/bridge-utils-1.0.6-r2 to / >>> md5 files ;-) bridge-utils-1.0.6-r2.ebuild >>> md5 files ;-) bridge-utils-1.0.6-r3.ebuild >>> md5 files ;-) bridge-utils-1.0.4.ebuild >>> md5 files ;-) bridge-utils-1.0.6.ebuild >>> md5 files ;-) bridge-utils-0.9.6-r2.ebuild >>> md5 files ;-) files/bridge.conf >>> md5 files ;-) files/bridge.rc >>> md5 files ;-) files/digest-bridge-utils-1.0.6-r2 >>> md5 files ;-) files/digest-bridge-utils-1.0.4 >>> md5 files ;-) files/digest-bridge-utils-1.0.6 >>> md5 files ;-) files/digest-bridge-utils-0.9.6-r2 >>> md5 files ;-) files/bridge-utils-1.0.6-dont-error-on-no-ports.patch >>> md5 files ;-) files/bridge-utils-1.0.6-allow-without-sysfs.patch >>> md5 files ;-) files/digest-bridge-utils-1.0.6-r3 >>> md5 src_uri ;-) bridge-utils-1.0.6.tar.gz >>> Unpacking source... >>> Unpacking bridge-utils-1.0.6.tar.gz to /var/tmp/portage/bridge-utils-1.0.6- r2/work * Applying bridge-utils-1.0.6-dont-error-on-no-ports.patch ... [ ok ] >>> Source unpacked. ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man -- infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc -- localstatedir=/var/lib --build=i686-pc-linux-gnu --prefix=/ --libdir=/usr/lib -- includedir=/usr/include --with-linux-headers=/usr/include checking for a BSD-compatible install... /bin/install -c checking whether build environment is sane... yes /bin/sh: /var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge-utils- 1.0.6/missing: No such file or directory configure: WARNING: `missing' script is too old or missing checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-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... o checking whether we are using the GNU C compiler... yes checking whether i686-pc-linux-gnu-gcc accepts -g... yes checking for i686-pc-linux-gnu-gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of i686-pc-linux-gnu-gcc... none checking for a BSD-compatible install... /bin/install -c checking for i686-pc-linux-gnu-ranlib... i686-pc-linux-gnu-ranlib checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -E checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for an ANSI C-conforming const... yes checking whether time.h and sys/time.h may both be included... yes checking whether i686-pc-linux-gnu-gcc needs -traditional... no checking for working memcmp... yes checking for gethostname... yes checking for socket... yes checking for strdup... yes checking for uname... yes checking for if_nametoindex... yes checking for if_indextoname... yes checking sysfs/libsysfs.h usability... yes checking sysfs/libsysfs.h presence... yes checking for sysfs/libsysfs.h... yes checking for sysfs_open_directory in -lsysfs... yes configure: creating ./config.status config.status: creating doc/Makefile config.status: creating libbridge/Makefile config.status: creating brctl/Makefile config.status: creating Makefile config.status: creating bridge-utils.spec config.status: creating libbridge/config.h config.status: executing depfiles commands for x in libbridge brctl doc; do make -C $x ; done make[1]: Entering directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/libbridge' i686-pc-linux-gnu-gcc -Wall -g -I/usr/include -c libbridge_devif.c In file included from libbridge_devif.c:28: libbridge_private.h:39:2: #error Using wrong kernel headers if_bridge.h is out of date. libbridge_private.h:43:2: #error Using wrong kernel headers sockios.h is out of date. libbridge_devif.c: In function `br_get_bridge_info': libbridge_devif.c:214: error: `SYSFS_BRIDGE_ATTR' undeclared (first use in this function) libbridge_devif.c:214: error: (Each undeclared identifier is reported only once libbridge_devif.c:214: error: for each function it appears in.) libbridge_devif.c: In function `br_get_port_info': libbridge_devif.c:300: error: `SYSFS_BRIDGE_PORT_ATTR' undeclared (first use in this function) libbridge_devif.c: In function `br_set': libbridge_devif.c:336: error: `SYSFS_BRIDGE_ATTR' undeclared (first use in this function) libbridge_devif.c: In function `port_set': libbridge_devif.c:407: error: `SYSFS_BRIDGE_PORT_ATTR' undeclared (first use in this function) libbridge_devif.c: In function `br_read_fdb': libbridge_devif.c:472: error: `SYSFS_BRIDGE_FDB' undeclared (first use in this function) make[1]: *** [libbridge_devif.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/libbridge' make[1]: Entering directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/brctl' i686-pc-linux-gnu-gcc -Wall -O2 -mcpu=i686 -pipe -I../libbridge - I/usr/include -c brctl.c i686-pc-linux-gnu-gcc -Wall -O2 -mcpu=i686 -pipe -I../libbridge - I/usr/include -c brctl_cmd.c i686-pc-linux-gnu-gcc -Wall -O2 -mcpu=i686 -pipe -I../libbridge - I/usr/include -c brctl_disp.c make[1]: *** No rule to make target `../libbridge/libbridge.a', needed by `brctl'. Stop. make[1]: Leaving directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/brctl' make[1]: Entering directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/doc' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/doc' >>> Test phase [not enabled]: net-misc/bridge-utils-1.0.6-r2 >>> Install bridge-utils-1.0.6-r2 into /var/tmp/portage/bridge-utils-1.0.6- r2/image/ category net-misc for x in libbridge brctl doc; do make -C $x install; done make[1]: Entering directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/libbridge' i686-pc-linux-gnu-gcc -Wall -g -I/usr/include -c libbridge_devif.c In file included from libbridge_devif.c:28: libbridge_private.h:39:2: #error Using wrong kernel headers if_bridge.h is out of date. libbridge_private.h:43:2: #error Using wrong kernel headers sockios.h is out of date. libbridge_devif.c: In function `br_get_bridge_info': libbridge_devif.c:214: error: `SYSFS_BRIDGE_ATTR' undeclared (first use in this function) libbridge_devif.c:214: error: (Each undeclared identifier is reported only once libbridge_devif.c:214: error: for each function it appears in.) libbridge_devif.c: In function `br_get_port_info': libbridge_devif.c:300: error: `SYSFS_BRIDGE_PORT_ATTR' undeclared (first use in this function) libbridge_devif.c: In function `br_set': libbridge_devif.c:336: error: `SYSFS_BRIDGE_ATTR' undeclared (first use in this function) libbridge_devif.c: In function `port_set': libbridge_devif.c:407: error: `SYSFS_BRIDGE_PORT_ATTR' undeclared (first use in this function) libbridge_devif.c: In function `br_read_fdb': libbridge_devif.c:472: error: `SYSFS_BRIDGE_FDB' undeclared (first use in this function) make[1]: *** [libbridge_devif.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/libbridge' make[1]: Entering directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/brctl' make[1]: *** No rule to make target `../libbridge/libbridge.a', needed by `brctl'. Stop. make[1]: Leaving directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/brctl' make[1]: Entering directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/doc' mkdir -p /var/tmp/portage/bridge-utils-1.0.6-r2/image//usr/share/man/man8 install -m 644 brctl.8 /var/tmp/portage/bridge-utils-1.0.6- r2/image//usr/share/man/man8 make[1]: Leaving directory `/var/tmp/portage/bridge-utils-1.0.6-r2/work/bridge- utils-1.0.6/doc' man: gzipping man page: brctl.8 prepallstrip: strip: i686-pc-linux-gnu-strip --strip-unneeded >>> Completed installing bridge-utils-1.0.6-r2 into /var/tmp/portage/bridge- utils-1.0.6-r2/image/ >>> Merging net-misc/bridge-utils-1.0.6-r2 to / --- /usr/ --- /usr/share/ --- /usr/share/man/ --- /usr/share/man/man8/ >>> /usr/share/man/man8/brctl.8.gz --- /usr/share/doc/ >>> /usr/share/doc/bridge-utils-1.0.6-r2/ >>> /usr/share/doc/bridge-utils-1.0.6-r2/AUTHORS.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/README.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/ChangeLog.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/THANKS.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/TODO.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/FAQ.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/FIREWALL.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/HOWTO.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/PROJECTS.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/SMPNOTES.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/RPM-GPG-KEY.gz >>> /usr/share/doc/bridge-utils-1.0.6-r2/WISHLIST.gz * This package no longer provides a seperate init script. * Please utilize the new bridge support in baselayout. >>> Regenerating /etc/ld.so.cache... >>> net-misc/bridge-utils-1.0.6-r2 merged. >>> Recording net-misc/bridge-utils in "world" favorites file... >>> clean: No packages selected for removal. >>> Auto-cleaning packages ... >>> No outdated packages were found on your system.
please try r3, it should work for 2.4 users, and i've just moved it to stable after checking that it should catch your error.
Thanks for the quick reply, its working ok with -r3.