When I try to emerge media-gfx/splashutils-0.9_pre07 it fails . This may be due to my using gcc 3.4.1 Reproducible: Always Steps to Reproduce: 1.emerge splashutils 2. 3. Actual Results: ........... CC kernel/splash_kernel.o In file included from splash_kernel.c:18: /usr/portage/tmp/portage/splashutils-0.9_pre07/work/splashutils-0.9-pre07/linux/ include/linux/fb.h:305: error: field `modelist' has incomplete type make: *** [kernel/splash_kernel.o] Error 1 !!! ERROR: media-gfx/splashutils-0.9_pre07 failed. !!! Function src_install, Line 57, Exitcode 2 !!! (no error message) bash-2.05b# gcc -v Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.1/specs Configured with: /usr/portage/tmp/portage/gcc-3.4.1-r1/work/gcc-3.4.1/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4 --includedir=/usr/lib/ gcc/i686-pc-linux-gnu/3.4.1/include --datadir=/usr/share/gcc-data/i686-pc-linux- gnu/3.4 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4/man --infodir=/usr/ share/gcc-data/i686-pc-linux-gnu/3.4/info --enable-shared --host=i686-pc-linux- gnu --target=i686-pc-linux-gnu --with-system-zlib --enable-languages=c,c++ -- enable-threads=posix --enable-long-long --disable-checking --disable-libunwind- exceptions --enable-cstdio=stdio --enable-version-specific-runtime-libs --with- gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.1/include/g++-v3 --with- local-prefix=/usr/local --disable-werror --enable-shared --enable-nls --without- included-gettext --disable-multilib --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 3.4.1 (Gentoo Linux 3.4.1-r1, ssp-3.4-2, pie-8.7.6.3)
This problem is caused by a bug in the kernel headers of 2.6.9_rc1 (I'm guessing you're using development-sources, right?). With the way things are done now I can't do much with it (dev-sources are supposed to be vanilla kernels from kernel.org, without any patches). A quick and dirty fix that you might find useful is moving '#ifdef __KERNEL__' below the end of 'struct list_head' declaration in /usr/src/linux/include/linux/list.h.
The following fix was provided by xiphux who maintains xx-sources that I am currently using. It did enable me to compile splashutils. Go edit /usr/src/linux/include/linux/fb.h. At line 305, you'll see: Code: struct list_head modelist; Add an asterisk in front of modelist, so: Code: struct list_head *modelist It needs to be a pointer to a list head. But that breaks the other kernel stuff that depends on fb.h, so change it back after you compile splashutils. xx is mm based so I believe this will show the same under mm sources. I would appear to be splashutils incorrectly interpretting this variable, but I have not investigated further.
This is NOT a VALID fix. The fact that it makes splashutils compile doesn't justify using it to 'fix' things. The problem will most likely occur on the -mm kernels as well (as you said), but fbsplash is not supported on mm's. Even if the hack you're were told about were correct, I couldn't apply anywhere as the problem is not in splashutils, but in the kernel headers.