net-misc/quagga-0.99.5 does not emerge with LDFLAGS="-Wl,--as-needed" set. Without --as-needed emerge works. i686-pc-linux-gnu-gcc -O2 -march=athlon-xp -fomit-frame-pointer -pipe -Wl,--as-needed -o .libs/testzebra test_main.o zebra_rib.o interface.o connected.o debug.o zebra_vty.o kernel_null.o redistribute_null.o ioctl_null.o misc_null.o -lcap ../lib/.libs/libzebra.so -lm -lcrypt ../lib/.libs/libzebra.so: undefined reference to `cap_init' ../lib/.libs/libzebra.so: undefined reference to `cap_get_flag' ../lib/.libs/libzebra.so: undefined reference to `cap_clear' ../lib/.libs/libzebra.so: undefined reference to `cap_set_flag' ../lib/.libs/libzebra.so: undefined reference to `cap_set_proc' ../lib/.libs/libzebra.so: undefined reference to `cap_free' collect2: ld returned 1 exit status make[2]: *** [testzebra] Fehler 1 make[2]: *** Warte auf noch nicht beendete Prozesse... i686-pc-linux-gnu-gcc -O2 -march=athlon-xp -fomit-frame-pointer -pipe -Wl,--as-needed -o .libs/zebra zserv.o main.o interface.o connected.o zebra_rib.o redistribute.o debug.o rtadv.o zebra_snmp.o zebra_vty.o irdp_main.o irdp_interface.o irdp_packet.o router-id.o ioctl.o ipforward_proc.o if_netlink.o if_proc.o rt_netlink.o rtread_netlink.o ../lib/.libs/libzebra.so -lcap -lm -lcrypt ../lib/.libs/libzebra.so: undefined reference to `cap_init' ../lib/.libs/libzebra.so: undefined reference to `cap_get_flag' ../lib/.libs/libzebra.so: undefined reference to `cap_clear' ../lib/.libs/libzebra.so: undefined reference to `cap_set_flag' ../lib/.libs/libzebra.so: undefined reference to `cap_set_proc' ../lib/.libs/libzebra.so: undefined reference to `cap_free' collect2: ld returned 1 exit status make[2]: *** [zebra] Fehler 1 make[2]: Leaving directory `/var/tmp/portage/net-misc/quagga-0.99.5/work/quagga-0.99.5/zebra' make[1]: *** [all-recursive] Fehler 1 make[1]: Leaving directory `/var/tmp/portage/net-misc/quagga-0.99.5/work/quagga-0.99.5' make: *** [all] Fehler 2 !!! ERROR: net-misc/quagga-0.99.5 failed. Call stack: ebuild.sh, line 1568: Called dyn_compile ebuild.sh, line 937: Called src_compile quagga-0.99.5.ebuild, line 70: Called die !!! make failed !!! If you need support, post the topmost build error, and the call stack if relevant. # emerge --info Portage 2.1.2_pre3-r7 (default-linux/x86/2006.1/desktop, gcc-4.1.1, glibc-2.5-r0, 2.6.18.1 i686) ================================================================= System uname: 2.6.18.1 i686 AMD Athlon(tm) XP 3000+ Gentoo Base System version 1.12.5 Last Sync: Unknown distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [enabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.3.7, 2.0.30 dev-lang/python: 2.3.5-r3, 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.60 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.14 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/eselect/compiler /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c" CXXFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer -pipe" DISTDIR="/usr/my-distfiles" FEATURES="autoaddcvs autoconfig ccache collision-detect cvs distlocks metadata-transfer parallel-fetch sandbox sfperms sign strict" GENTOO_MIRRORS="http://pandemonium.tiscali.de/pub/gentoo/ ftp://pandemonium.tiscali.de/pub/gentoo/" LANG="de_DE.utf8" LC_ALL="de_DE.utf8" LDFLAGS="-Wl,--as-needed" LINGUAS="de" MAKEOPTS="-j4" PKGDIR="/usr/my-packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/home/matze/gentoo/overlays/de /home/matze/gentoo/overlays/zzam /home/matze/gentoo/overlays/vdr/testing /home/matze/gentoo/overlays/vdr/experimental /usr/portage/local/layman/sunrise /usr/portage/local/layman/java-migration-packages" SYNC="cvs://zzam@cvs.gentoo.org:/var/cvsroot" USE="x86 3dnow 3dnowext X Xaw3d a52 aac acl alsa apache2 artswrappersuid audacious berkdb bitmap-fonts bluetooth bzip2 cairo cap caps cddb cdparanoia cdr cli cracklib crypt cups dbus dlloader doc dri dts dvb dvd dvdr eds elibc_glibc emboss encode exif fam fbcon ffmpeg firefox font-server fortran fuse gcj gdbm gif gimpprint glut gpm gstreamer gtk hal imap input_devices_keyboard input_devices_mouse ipv6 isdnlog java jpeg jpeg2k kde kdexdeltas kernel_linux ldap libg++ linguas_de lirc lirc_devices_all logitech-mouse mad mikmod mmx mmxext mng mp3 mpeg mplayer musicbrainz mysql ncurses nls nogecko-sdk nptl nptlonly nvram offensive ogg opengl oss pam pcre pdf perl png ppds pppd python qt qt3 qt4 quotes readline reflection samba session sms sndfile softmmu spell spl sqlite sse ssl svg taglib tcltk tcpd tiff truetype truetype-fonts type1-fonts udev unicode usb userland_GNU userlocales vcd vdr video_cards_nv video_cards_nvidia video_cards_v4l video_cards_vbdev video_cards_vesa visualization vorbis win32codecs wma wmf xinerama xml xorg xrandr xslt xv zlib zvbi" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 100380 [details, diff] quagga-0.99.5-as-needed.diff The attached patch makes quagga link with --as-needed. The cause is that ../lib/.libs/libzebra.so uses functions of libcap but does not link against it. The patch fixes it.
Reassigned to me since now I'm the only quagga maintainer left.
Fixed in cvs, without revision bump, by merging your patch and zebra-linkorder.patch into link-libcap.patch. As a side note, on my test machine zebra-linkorder.patch was enough to make quagga compilable with LDFLAGS=-Wl,--as-needed. P.S. If you want to increase the chance of your bugs being fixed, add to CC all the maintainers. I thought you found another solution to your problem.
This is still unfixed in our stable ebuild -- any chance the patch might be applied there?
I've added the patch to version 0.98.6-r4.