Forum Linux.général Problème de compilation Xgl

Posté par  .
Étiquettes : aucune
0
15
fév.
2006
Bonjour à tous,
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  (site web personnel) . Évalué à 2.

    En fait faut éditer le makefile.am (ou makefile tout court mais plus dur) dans GL/mesa
    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  (site web personnel) . Évalué à 2.

      Pour info le fichier est dans un repertoire au nom genre swaft je crois :) (y a un w un a ca c'est sur, mais apres bon)
      Et pis le fichier à rajouter c'est un .c pas .h (on ne sait jamais ;o)
      • [^] # Re: Je l'ai eu!

        Posté par  . Évalué à 2.

        J'ai trouvé le fichier qui contenait cette fonction, un certain glcmap.c mais lorsque je l'inclut dans Makefile.am, il râle à propos de multiples définitions....
        Merci quand même ;)
  • # Ça compile

    Posté par  . Évalué à 1.

    Salut,

    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  . Évalué à 2.

      J'ai essayé et j'ai pu aller un peu plus loin dans la compilation, maintenant c'est GlxFlushContextCache dans hw/xvfb. En fait, cette fonction n'est inclue que dans libxgl.a mais pas dans libglx.la qui elle inclut des fonctions non présentes de libxgl.a.... Quand j'aurais le temps, je retenterai depuis le début en prenant les sources SVN les plus récents.
      Merci quand même ;)
      • [^] # Re: Ça compile

        Posté par  . Évalué à 2.

        Il faut faire un make clean avant l'autogen car xserver/xorg a servi a la compilation de xorg 7.0 à l'étape précédente.
      • [^] # Re: Ça compile

        Posté par  . Évalué à 2.

        il faut faire un make clean avant l'autogen car xorg et xgl partagent la même arborescence.
    • [^] # Re: Ça compile

      Posté par  . Évalué à 2.

      Rhhhhhaaaa je cherchais depuis 2 jours pourquoi il refusait de compiler alors que fbcmap.o etait inclus! j'avais pas vu le coup du #ifndef

      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  . Évalué à 1.

        pardon, make distclean et pas make clean devrait régler le problème

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.