system upgrade has libdvb 0.5.5 queued for emerge, very early in the build, process exits with a critical error: >>> emerge (1 of 11) media-libs/libdvb-0.5.5 to / >>> md5 src_uri ;-) libdvb-0.5.5.tar.gz >>> Unpacking source... >>> Unpacking libdvb-0.5.5.tar.gz to /var/tmp/portage/libdvb-0.5.5/work * Applying libdvb-0.5.5-gentoo.patch ... [ ok ] >>> Source unpacked. make -C libdvb main make[1]: Entering directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libdvb' make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. make -C libdvbci main g++ -I. -I../include -I../../include -O2 -Wall -g -c devices.cc make[1]: Entering directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libdvbci' make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. g++ -I. -I../include -I../../include -O2 -Wall -g -c ci.cc g++ -I. -I../include -I../../include -O2 -Wall -g -c DVB.cc ar -rcs libdvbci.a ci.o make[1]: Leaving directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libdvbci' make -C libdvbmpeg libdvbmpegtools.a make[1]: Entering directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libdvbmpeg' Makefile:36: .depend: No such file or directory make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. g++ -M ctools.c remux.c ringbuffy.c transform.c cpptools.cc -I. -I../include -I../../include> .depend make[1]: Leaving directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libdvbmpeg' make[1]: Entering directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libdvbmpeg' make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. cc -c -O2 -Wall -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I. -I../include -I../../include ctools.c DVB.cc: In function `int chck_frontend(int, frontend_stat*)': DVB.cc:3571: error: `errno' undeclared (first use this function) DVB.cc:3571: error: (Each undeclared identifier is reported only once for each function it appears in.) make[1]: *** [DVB.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libdvb' make: *** [libdvb/libdvb.a] Error 2 make: *** Waiting for unfinished jobs.... cc -c -O2 -Wall -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I. -I../include -I../../include ringbuffy.c ringbuffy.c: In function `ring_write': ringbuffy.c:62: warning: implicit declaration of function `memcpy' cc -c -O2 -Wall -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I. -I../include -I../../include transform.c transform.c: In function `ts_demux': transform.c:2526: warning: cast from pointer to integer of different size transform.c:2543: warning: cast from pointer to integer of different size g++ -c -O2 -Wall -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I. -I../include -I../../include cpptools.cc ar -rcs libdvbmpegtools.a ctools.o ringbuffy.o transform.o cpptools.o make[1]: Leaving directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libdvbmpeg' !!! ERROR: media-libs/libdvb-0.5.5 failed. !!! Function src_compile, Line 28, Exitcode 2 !!! compile problem !!! If you need support, post the topmost build error, NOT this status message. system info: Portage 2.0.51-r8 (gcc34-amd64-2004.1, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.9-gentoo-r8 x86_64) ================================================================= System uname: 2.6.9-gentoo-r8 x86_64 AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.6.7 Python: dev-lang/python-2.3.4 [2.3.4 (#1, Nov 7 2004, 15:10:38)] dev-lang/python: 2.3.4 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.8.5-r2, 1.5, 1.4_p6, 1.6.3, 1.7.9, 1.9.3 sys-devel/binutils: 2.15.92.0.2-r1 sys-devel/libtool: 1.5.10 virtual/os-headers: 2.6.8.1-r1 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CFLAGS="-O2" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/bind /var/qmail/control /var/vpopmail/domains /var/vpopmail/etc" CONFIG_PROTECT_MASK="/etc/gconf /etc/init.d /etc/terminfo /etc/env.d" CXXFLAGS="-O2" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distlocks" GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo" MAKEOPTS="-j2" 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 amd64 apm arts avi berkdb bitmap-fonts bonobo cdparanoia cdr crypt cups dvd encode f77 foomaticdb fortran gdbm gif gnome gpm gstreamer gtk gtk2 gtkhtml guile imlib jabber jack jpeg kde ldap libg++ libwww maildir mikmod motif mozilla mpeg multilib ncurses nls oggvorbis opengl oss pam pda pdflib perl png postgres python qt quicktime readline sdl slang spell ssl tcltk tcpd tetex truetype xine xml2 xmms xv zlib" Reproducible: Always Steps to Reproduce: 1.emerge -u world 2.libdvb build fails 3.system update halts Actual Results: libdvb failed to build, world update fails immediately as libdvb is queued first in -u Expected Results: fine new software should have been merged into my system!
Variable errno is not declared, because errno cames from errno.h and not from asm errno.h. Following patch works for me: --- include/DVB.hh.orig 2004-12-08 10:18:22.641333258 +0100 +++ include/DVB.hh 2004-12-08 10:18:35.975078971 +0100 @@ -2,7 +2,7 @@ #define _DVB_DEV_HH_ extern "C" { -#include <asm/errno.h> +#include <errno.h> #include <fcntl.h> #include <netdb.h> #include <netinet/in.h>
similar here, but other error (it seems): make -C libdvb main make -C libdvbci main make[1]: Entering directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/lib dvb' make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule . g++ -I. -I../include -I../../include -O2 -Wall -g -c devices.cc make[1]: Entering directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/lib dvbci' make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule . g++ -I. -I../include -I../../include -O2 -Wall -g -c ci.cc ci.cc:34:26: linux/dvb/ca.h: No such file or directory ci.cc: In member function `bool cCiTransportLayer::ResetSlot(int)': ci.cc:571: error: `CA_RESET' undeclared (first use this function) ci.cc:571: error: (Each undeclared identifier is reported only once for each fun ction it appears in.) ci.cc: In member function `bool cCiTransportLayer::ModuleReady(int)': ci.cc:583: error: `ca_slot_info_t' undeclared (first use this function) ci.cc:583: error: expected `;' before "sinfo" ci.cc:584: error: `sinfo' undeclared (first use this function) ci.cc:585: error: `CA_GET_SLOT_INFO' undeclared (first use this function) ci.cc:586: error: `CA_CI_MODULE_READY' undeclared (first use this function) ci.cc: In static member function `static cCiHandler* cCiHandler::CreateCiHandler (const char*)': ci.cc:1405: error: `ca_caps_t' undeclared (first use this function) ci.cc:1405: error: expected `;' before "Caps" ci.cc:1406: error: `CA_GET_CAP' undeclared (first use this function) ci.cc:1406: error: `Caps' undeclared (first use this function) ci.cc:1410: error: `CA_CI_LINK' undeclared (first use this function) make[1]: *** [ci.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libd vbci' make: *** [libdvbci/libdvbci.a] Error 2 make: *** Waiting for unfinished jobs.... In file included from devices.cc:1: ../include/devices.hh:14:32: linux/dvb/frontend.h: No such file or directory In file included from devices.cc:1: ../include/devices.hh:48: error: `fe_spectral_inversion_t' does not name a type devices.cc:10: error: `fe_spectral_inversion_t' does not name a type devices.cc: In function `std::ostream& operator<<(std::ostream&, Transponder&)': devices.cc:125: error: `FE_QPSK' undeclared (first use this function) devices.cc:125: error: (Each undeclared identifier is reported only once for eac h function it appears in.) devices.cc:127: error: `FE_QAM' undeclared (first use this function) devices.cc:135: error: `FE_OFDM' undeclared (first use this function) devices.cc:144: error: 'class Transponder' has no member named 'inversion' devices.cc:145: error: `INVERSION_OFF' undeclared (first use this function) devices.cc:148: error: `INVERSION_ON' undeclared (first use this function) devices.cc:151: error: `INVERSION_AUTO' undeclared (first use this function) devices.cc: In function `std::istream& operator>>(std::istream&, Transponder&)': devices.cc:300: error: `FEC_AUTO' undeclared (first use this function) devices.cc:301: error: 'class Transponder' has no member named 'inversion' devices.cc:301: error: `INVERSION_OFF' undeclared (first use this function) devices.cc:341: error: `FE_QPSK' undeclared (first use this function) devices.cc:346: error: `FE_QAM' undeclared (first use this function) devices.cc:368: error: `FE_OFDM' undeclared (first use this function) devices.cc:406: error: 'class Transponder' has no member named 'inversion' devices.cc:406: error: `invset' undeclared (first use this function) make[1]: *** [devices.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/libdvb-0.5.5/work/libdvb-0.5.5/libd vb' make: *** [libdvb/libdvb.a] Error 2 root@eNTi # emerge info Portage 2.0.51-r8 (default-linux/x86/2004.0, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.9-gentoo-r9 i686) ================================================================= System uname: 2.6.9-gentoo-r9 i686 AMD Athlon(tm) XP 2000+ Gentoo Base System version 1.6.7 Python: dev-lang/python-2.3.4 [2.3.4 (#1, Oct 27 2004, 10:16:09)] dev-lang/python: 2.3.4 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.5, 1.9.3, 1.6.3, 1.8.5-r2, 1.7.9, 1.4_p6 sys-devel/binutils: 2.15.92.0.2-r1 sys-devel/libtool: 1.5.2-r7 virtual/os-headers: 2.6.8.1-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O2 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache digest distlocks fixpackages sandbox sfperms" GENTOO_MIRRORS="http://gentoo.inode.at/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://mir.zyrianes.net/gentoo/ ftp://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ ftp://mir.zyrianes.net/gentoo/ http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ ftp://ftp.ntua.gr/pub/linux/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://ftp.ntua.gr/pub/linux/gentoo/ ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowex S3TC X aalib acpi acpi4linux alsa antlr apm async avi berkdb bidi bitmap-fonts cdparanoia cdr crypt cups dga directfb divx4linux dvb dvd dvdr dvdread encode f77 faad fam flac fltk fmod foomaticdb fortran freetype gdbm gif gimpprint glut gphoto2 gpm gtk gtk2 guile icq imagemagick imlib imlib2 java jikes jpeg junit lcms ldap libg++ libwww mad maildir matroska mcal mikmod mmap mmx mmx2 mng moznocompose moznoirc moznomail mpeg music mysql nas ncurses nethack network nls nowin nvidia offensive oggvorbis openal opengl operanom2 oscar oss pam pdflib perl png ppds python qt quicktime readline rtc samba sdl session slang slp speex spell sse sse2 ssl stencil-buffer stroke tcltk tcpd tetex theora threads tiff timidity transcode truetype type1 unicode usb utf8 vim-with-x vnc wmf wxwindows x86 xchatdccserver xine xml xml2 xmlrpc xmms xosd xpm xrandr xv xvid xvmc zlib"
I can both confirm the bug itself and that the patch J
I can both confirm the bug itself and that the patch Jörg supplied works and can without any changes be added to portage, maybe even in the existing /usr/portage/media-libs/libdvb/files/libdvb-0.5.5-gentoo.patch Thanks! /©harlie
Confirmation: Patch from J
Confirmation: Patch from Jörg Gollnick works on my AMD64 machine.
Is this patch only needed for amd64 ? if so I'll maybe limit it to apply only on AMD64
The main thing about errno seams to be solved, as patch is in portage and upstream included a similar fix in libdvb-0.5.5.1. Is the second error concerning not available dvb-headers (linux/dvb/ca.h linux/dvb/frontend.h etc.) any longer there?
libdvb builds cleanly on my machine now. No sign of the secondary error during build. -B