Suite à la vidéo sur Compiz, je me suis lancé dans la compilation de Xgl, grâce à ce tutoriel : http://www.terra.es/personal/diegocg/xglbuild.txt . J'ai suivi scrupuleusement les instructions, sauf que j'ai du recompiler libdrm depuis le CVS et que j'ai du dire avant la compilation de Xgl le chemin absolu de compilation de Mesa au lieu de ../../Mesa.
Mais je me heurte à un problème : j'ai cette erreur-ci lors de la compilation :
make[3]: entrant dans le répertoire « /home/yann/Documents/Compilations/compiz/xserver/xorg/hw/xgl »
/bin/sh ../../libtool --tag=CC --mode=link gcc -DXGLServer -DXFree86Server -DHAVE_XGL_CONFIG_H -DHAVE_DIX_CONFIG_H -I../../GL/glx -I../../GL/include -I/home/yann/Documents/Compilations/compiz/xserver/xorg/Mesa//include -I/home/yann/Documents/Compilations/compiz/xserver/xorg/Mesa//src/mesa/glapi -I/opt/include -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/opt/include -I../../include -I../../include -I../../Xext -I../../composite -I../../damageext -I../../xfixes -I../../Xi -I../../mi -I../../miext/shadow -I../../miext/damage -I../../render -I../../randr -I../../fb -g -O2 -o Xgl -export-dynamic xglinit.o miinitext.o dpmsstubs.o stubs.o fbcmap.o libxgl.a ../../dix/libdix.la -L/opt/lib -lXfont -lXau -lfontenc -lXdmcp -lm -lz ../../fb/libfb.la ../../mi/libmi.la ../../composite/libcomposite.la ../../xfixes/libxfixes.la ../../Xext/libXext.la ../../dbe/libdbe.la ../../XTrap/libxtrap.la ../../record/librecord.la ../../render/librender.la ../../randr/librandr.la ../../damageext/libdamageext.la ../../miext/damage/libdamage.la ../../miext/cw/libcw.la ../../miext/shadow/libshadow.la ../../Xi/libXi.la ../../xkb/libxkb.la ../../xkb/libxkbstubs.la ../../dix/libxpstubs.la ../../os/libcwrapper.la ../../os/libos.la -ldl -L/opt/lib -lglitz -lm -lm
gcc -DXGLServer -DXFree86Server -DHAVE_XGL_CONFIG_H -DHAVE_DIX_CONFIG_H -I../../GL/glx -I../../GL/include -I/home/yann/Documents/Compilations/compiz/xserver/xorg/Mesa//include -I/home/yann/Documents/Compilations/compiz/xserver/xorg/Mesa//src/mesa/glapi -I/opt/include -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/opt/include -I../../include -I../../include -I../../Xext -I../../composite -I../../damageext -I../../xfixes -I../../Xi -I../../mi -I../../miext/shadow -I../../miext/damage -I../../render -I../../randr -I../../fb -g -O2 -o Xgl xglinit.o miinitext.o dpmsstubs.o stubs.o fbcmap.o -Wl,--export-dynamic libxgl.a ../../dix/.libs/libdix.a -L/opt/lib /opt/lib/libXfont.so /opt/lib/libXau.so /opt/lib/libfontenc.so /opt/lib/libXdmcp.so -lz ../../fb/.libs/libfb.a ../../mi/.libs/libmi.a ../../composite/.libs/libcomposite.a ../../xfixes/.libs/libxfixes.a ../../Xext/.libs/libXext.a ../../dbe/.libs/libdbe.a ../../XTrap/.libs/libxtrap.a ../../record/.libs/librecord.a ../../render/.libs/librender.a ../../randr/.libs/librandr.a ../../damageext/.libs/libdamageext.a ../../miext/damage/.libs/libdamage.a ../../miext/cw/.libs/libcw.a ../../miext/shadow/.libs/libshadow.a ../../Xi/.libs/libXi.a ../../xkb/.libs/libxkb.a ../../xkb/.libs/libxkbstubs.a ../../dix/.libs/libxpstubs.a ../../os/.libs/libcwrapper.a ../../os/.libs/libos.a -ldl /opt/lib/libglitz.so -lm
libxgl.a(xglcmap.o): In function `xglSetVisualTypes':/home/yann/Documents/Compilations/compiz/xserver/xorg/hw/xgl/xglcmap.c:156: undefined reference to `fbSetVisualTypesAndMasks'
:/home/yann/Documents/Compilations/compiz/xserver/xorg/hw/xgl/xglcmap.c:163: undefined reference to `fbSetVisualTypesAndMasks'
collect2: ld returned 1 exit status
make[3]: *** [Xgl] Erreur 1
make[3]: quittant le répertoire « /home/yann/Documents/Compilations/compiz/xserver/xorg/hw/xgl »
make[2]: *** [all-recursive] Erreur 1
make[2]: quittant le répertoire « /home/yann/Documents/Compilations/compiz/xserver/xorg/hw/xgl »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /home/yann/Documents/Compilations/compiz/xserver/xorg/hw »
make: *** [all-recursive] Erreur 1
J'ai cherché un peu dans les sources voire si un fichier avait déjà été compilé alors qu'il utilisait la fonction fbSetVisualTypesAndMasks au cas où un paramètre -llib avait été oublié, mais non. Que faire?
Merci d'avance !
# Je l'ai eu!
Posté par Ph Husson (site web personnel) . Évalué à 2.
Et rajouter un fichier qu'il va chercher dans les sources de mesa
fait un grep dans mesa de la fonction, tu trouvera le fichier et rajoute le fichier dans le makefile.am (par comparaison tu trouvera ou je penses)
Apres un petit coup de autogen.sh et c'ets reparti!
PS:Faut la version CVS de Mesa sinon c'est meme vu qu'il faut glx_texture_from_bitmap ou un truc du genre qui n'existe que dans le CVS et que pour Xgl (si ma mémoire est pas trop foireuse mais bon à ct'heure et avec le bruit que y a au dessus) pas la peine, mais à priori si t'as l'erreur la je crois que c'est bon
[^] # Re: Je l'ai eu!
Posté par Ph Husson (site web personnel) . Évalué à 2.
Et pis le fichier à rajouter c'est un .c pas .h (on ne sait jamais ;o)
[^] # Re: Je l'ai eu!
Posté par Manger sur pattes . Évalué à 2.
Merci quand même ;)
# Ça compile
Posté par eburghar . Évalué à 1.
On dirait qu'on est plusieurs a suivre la meme piste et a trouver plus ou moins les même solutions. J'ai réussi a compiler Xgl. Ça a l'air un peu foireux mais ça marche...
La fonction en question se trouve dans xorg/xserver/fb/fbcmap.c. En rajoutant un
#undef XFree86Server devant #ifndef XFree86Server ça compile jusqu'au bout.
J'ai maintenant un pb certainement du au driver ati, le serveur se lance, l'accélaration matérielle est bien active, l'ecran apparait mais avec le pointeur en sablier et le tout plante au bout de 5s.
Voilà. N'hésite pas si t'avances.
A+
[^] # Re: Ça compile
Posté par Manger sur pattes . Évalué à 2.
Merci quand même ;)
[^] # Re: Ça compile
Posté par eburghar . Évalué à 2.
[^] # Re: Ça compile
Posté par eburghar . Évalué à 2.
[^] # Re: Ça compile
Posté par wargre . Évalué à 2.
MERCI!
je compile donc un peu plus, mais il me remet une erreur sur une redefinition de fonction. Je me demande si c'est pas lié a un autre
#ifdef XFree86Server
Quelqu'un serait dans quel fichier de config il est defini ? (en plus je trouve que c'est idiot, on est dans un repertoire xorg et on defini une variable disant que l'on compile pour Xfree...)
[^] # Re: Ça compile
Posté par eburghar . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.