Mittwoch, 25. April 2007
Mesa compiliert nicht
devel@reese:~/directfb/Mesa$ make
for i in src ; do \
make -C $i || exit 1 ; \
done
make[1]: Entering directory `/home/devel/directfb/Mesa/src'
make[1]: *** No rule to make target `/usr/lib/gcc-lib/i486-linux/3.3.4/include/stddef.h', needed by `blend.o'. Stop.
make[1]: Leaving directory `/home/devel/directfb/Mesa/src'
make: *** [subdirs] Error 1

... comment

 
Lösungsversuche
486 mkdir /usr/lib/gcc-lib/i486-linux
487 ln -s /usr/lib/gcc-lib/i486-linux-gnu/3.3.6 /usr/lib/gcc-lib/i486-linux/3.3.4

493 mkdir /usr/X11R6/include
494 ln -s /usr/include/X11/ /usr/X11R6/include

496 ln -s /usr/include/GL/ /usr/X11R6/include

Dann:

make[2]: Entering directory `/home/devel/directfb/Mesa/src/dri'
make[2]: *** No rule to make target `/usr/X11R6/include/GL/glxtokens.h', needed by `dri_glx.o'. Stop.

... link  

 
Tja..
die gcc-lib-Fehler waren auch zu beheben, indem man Mesa nochmal neu entpackt und frisch ge'make'd hat.
Die GL-Header von /usr/local/X11R6 (ja, das Backup kam von mir) konnte ich ins Makefile reinhacken.

Aber das mga.ko habe ich jetzt auch nicht compiliert bekommen. Ich glaube, der 2.6.8-Kernel lässt sich mit dem neuen Standard-GCC (4.1) gar nicht mehr compilieren - entsprechend auch keine Module.
Hatte jetzt keine Zeit mehr, zu versuchen, wie man ihn zwingt, den alten gcc-3.3 zu verwenden.

... link  

 
gcc-Version erzwingen
Habe in comp.os.linux.misc gefunden:

Usual convention for forcing a particular compiler is setting the CC variable to the path of the compiler you want to use.
ie. export CC="gcc-2.95"

Also bei uns:
export CC="gcc-3.3"

Das Modul compiliert mit dem alten Compiler allerdings auch nicht:
devel@reese:~/directfb/Mesa/src/kernel/drm$ make
make -C /lib/modules/2.6.8rtai/build SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
make[1]: Entering directory `/home/devel/tmp/kernel-source-2.6.8'
CC [M] /home/devel/directfb/Mesa/src/kernel/drm/mga_drv.o
In file included from include/linux/prefetch.h:14,
from include/linux/list.h:7,
from include/asm/adeos.h:29,
from include/linux/adeos.h:25,
from include/linux/sched.h:8,
from include/linux/module.h:10,
from /home/devel/directfb/Mesa/src/kernel/drm/drmP.h:46,
from /home/devel/directfb/Mesa/src/kernel/drm/mga_drv.c:34:
include/asm/processor.h:87: error: array type has incomplete element type
In file included from include/linux/sched.h:8,
from include/linux/module.h:10,
from /home/devel/directfb/Mesa/src/kernel/drm/drmP.h:46,
from /home/devel/directfb/Mesa/src/kernel/drm/mga_drv.c:34:
include/linux/adeos.h:310: error: conflicting types for 'adeos_test_pipeline_from'
include/linux/adeos.h:276: error: previous definition of 'adeos_test_pipeline_from' was here
include/linux/adeos.h:317: error: conflicting types for 'adeos_test_and_stall_pipeline_from'
include/linux/adeos.h:289: error: previous definition of 'adeos_test_and_stall_pipeline_from' was here
In file included from /home/devel/directfb/Mesa/src/kernel/drm/mga_drv.c:41:
/home/devel/directfb/Mesa/src/kernel/drm/drm_context.h: In function 'mga_context_switch':
/home/devel/directfb/Mesa/src/kernel/drm/drm_context.h:309: warning: pointer targets in passing argument 2 of 'test_and_set_bit' differ in signedness
/home/devel/directfb/Mesa/src/kernel/drm/drm_context.h:318: warning: pointer targets in passing argument 2 of 'clear_bit' differ in signedness
/home/devel/directfb/Mesa/src/kernel/drm/drm_context.h: In function 'mga_context_switch_complete':
/home/devel/directfb/Mesa/src/kernel/drm/drm_context.h:348: warning: pointer targets in passing argument 2 of 'clear_bit' differ in signedness
make[2]: *** [/home/devel/directfb/Mesa/src/kernel/drm/mga_drv.o] Error 1
make[1]: *** [_module_/home/devel/directfb/Mesa/src/kernel/drm] Error 2
make[1]: Leaving directory `/home/devel/tmp/kernel-source-2.6.8'
make: *** [modules] Error 2

... link  

 
CC auch für Kernel?
Ja, CC=gcc-3.3 habe ich auch schon probiert. Nachdem das aber überhaupt keine Auswirkungen auf die Meldungen hatte, war ich mir nicht sicher, ob das auch vom make-System des Kernels beachtet wird.

... link  

 
gcc-Link nicht vergessen
Was noch gefehlt hat:
reese:/home/devel/tmp/kernel-source-2.6.8# ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 7 Apr 22 00:30 /usr/bin/gcc -> gcc-4.1
reese:/home/devel/tmp/kernel-source-2.6.8# cd /usr/bin
reese:/usr/bin# rm gcc
reese:/usr/bin# ln -s /usr/bin/gcc-3.3 /usr/bin/gcc
r

Jetzt hat er das mga.ko gebaut. Uff.

... link  

 
Kernel-Fehler besteht weiter
Obwohl ich die df_* examples auch nochmal gebaut habe, macht df_gears weiterhin den Kernel-Fehler.

Bitte hier weitermachen:
http://nrec.blogger.de/stories/766842/comment

... link  


... comment