Emerging DirectFB fails with message: matrox_maven.c:34:27: linux/i2c-dev.h: No such file or directory matrox_maven.c: In function `maven_write_byte': matrox_maven.c:68: error: implicit declaration of function `i2c_smbus_write_byte_data' matrox_maven.c: In function `maven_write_word': matrox_maven.c:85: error: implicit declaration of function `i2c_smbus_write_word_data' matrox_maven.c: In function `maven_open': matrox_maven.c:316: error: `I2C_SLAVE' undeclared (first use in this function) matrox_maven.c:316: error: (Each undeclared identifier is reported only once matrox_maven.c:316: error: for each function it appears in.) matrox_maven.c: In function `maven_init': matrox_maven.c:455: error: `I2C_SLAVE' undeclared (first use in this function) make[3]: *** [matrox_maven.lo] Erreur 1 make[3]: Leaving directory `/var/tmp/portage/DirectFB-0.9.20-r1/work/DirectFB-0.9.20/gfxdrivers/matrox' make[2]: *** [all-recursive] Erreur 1 make[2]: Leaving directory `/var/tmp/portage/DirectFB-0.9.20-r1/work/DirectFB-0.9.20/gfxdrivers' make[1]: *** [all-recursive] Erreur 1 make[1]: Leaving directory `/var/tmp/portage/DirectFB-0.9.20-r1/work/DirectFB-0.9.20' make: *** [all-recursive-am] Erreur 2 !!! ERROR: dev-libs/DirectFB-0.9.20-r1 failed. !!! Function src_compile, Line 99, Exitcode 2 !!! (no error message) Reproducible: Always Steps to Reproduce: 1. Have a 2.4 kernel 2. emerge DirectFB 3. see error message Actual Results: Here is the content of matrox_maven.c #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) #include <linux/i2c-dev.h> #else #include <linux/i2c.h> #endif So it seems that the include statement fails since the build looks for file i2c-dev.h instead of i2c.h as I have a 2.4.27 kernel Expected Results: Include i2c.h marge linux # emerge info Portage 2.0.50-r11 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.3.20040420-r2, 2.4.27) ================================================================= System uname: 2.4.27 i686 AMD Duron(tm) Gentoo Base System version 1.4.16 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O2 -pipe -funroll-loops -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /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 -funroll-loops -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.mirror.sdv.fr ftp://mir.zyrianes.net/gentoo/ ftp://ftp.easynet.nl/mirror/gentoo/ ftp://ftp .gentoo.skynet.be/pub/gentoo/ ftp://ftp.solnet.ch/mirror/Gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.fr.gentoo.org/gentoo-portage" USE="3dfx 3dnow aalib acl adns aim apache2 audiofile avi berkdb bindist bitmap-fonts bonobo caps crypt cscope cups curl directfb divx4linux doc encode ethereal f77 fastcgi fbcon fdftk flac flash foomaticdb freetds gd gdbm ggi gif gpm gstrea mer gtk2 guile icq imagemagick imap imlib innodb jabber jikes jpeg junit kerberos krb4 lcms ldap lesstif libg++ libgda l ibwww mad maildir mbox mcal md5sum mikmod mmx motif mozilla mpeg mpi msn mysql ncurses nls nocd oci8 odbc oggvorbis open gl oscar pam pdflib perl png postgres ppds prelude python quicktime readline ruby samba sasl sdl slang slp snmp socks5 s peex spell sqlite sse ssl svga tcpd tetex theora tiff truetype unicode usb vhosts wmf x86 xface xml2 xprint xv xvid yaho o zeo zlib"
As I'm not confident enough with the emerge process, I've not been able to actualy see where and how the LINUX_VERSION_CODE is defined. Using the commande below has been of no help. If you could tell me where to look at for the next time, I'll try to give a patch for this kind of bugs. Tia. find . -type f -exec grep LINUX_VERSION_CODE {} \; -print
As my use of DirectFB is to create a very small Gentoo based distro (for Business cards CD) I'm a bit suprised to end up in a game area. :) I would love to solve that problem by myself if only somebody could point me to a where to begin direction...
Well, the games team are the maintainers for DirectFB. In fact, SpanKY is the resident expert, so hopefully he'll pipe up shortly.
Ok Guys, sorry for all that noise. I still don't understand how this happened, but after emerging again the linux-headers the build now works fine. I saw that the LINUX_VERSION_CODE and KERNEL_VERSION were actually macros defined in linux/version.h and that's the reason why I decided to emerge the headers again. What I still don't understand is how these macros works, and why they failed before. But that's another story and I don't want to bother you with my slowly increasing knowledge. Sorry again.