# [MGA] driver qui compile plus en stable ...

## loopx

Bonsoir, 

Je met à jour mon serveur et oh :

```

config.status: executing depfiles commands                                      

make  all-recursive                                                             

a-1.4.9/work/xf86-video-mga-1.4.9 »                                             

make[2]: entrant dans le répertoire « /var/tmp/portage/x11-drivers/xf86-video-mg

/bin/sh ../libtool --tag=CC   --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG

omit-frame-pointer -pipe -MT clientlx.lo -MD -MP -MF .deps/clientlx.Tpo -c -o cl

mkdir .libs                                                                     

de/pixman-1 -O2 -march=i686 -fomit-frame-pointer -pipe -MT clientlx.lo -MD -MP -

In file included from mga.h:33,                                                 

/usr/include/xf86drm.h:40:17: error: drm.h: No such file or directory           

                 from clientlx.c:17:                                            

_context_t'                                                                     

_handle_t'                                                                      

re 'drm_magic_t'                                                                

re 'drm_handle_t'                                                               

re 'drm_handle_t'                                                               

re 'drm_magic_t'                                                                

/usr/include/xf86drm.h:546: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:550: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:551: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:552: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:553: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:559: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:560: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:562: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:564: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:565: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:566: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:567: error: expected '=', ',', ';', 'asm' or '__attribute

/usr/include/xf86drm.h:568: error: expected ')' before '*' token                

re 'drm_context_t'                                                              

re 'drm_context_t'                                                              

re 'drm_drawable_t'                                                             

re 'drm_drawable_t'                                                             

re 'drm_drawable_t'                                                             

/usr/include/xf86drm.h:574: error: expected declaration specifiers or '...' befo

re 'drm_drawable_info_type_t'                                                   

/usr/include/xf86drm.h:581: error: expected declaration specifiers or '...' befo

re 'drm_handle_t'                                                               

/usr/include/xf86drm.h:591: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:593: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:595: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:596: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:604: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:605: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:606: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:608: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:623: error: expected declaration specifiers or '...' befo

/usr/include/xf86drm.h:624: error: expected declaration specifiers or '...' befo

In file included from mga.h:37,                                                 

/usr/include/xorg/dri.h:41:21: error: xf86dri.h: No such file or directory      

                 from clientlx.c:17:                                            

ore 'drm_context_t'                                                             

ore 'drm_context_t'                                                             

/usr/include/xorg/dri.h:195: error: expected specifier-qualifier-list before 'dr

m_handle_t'                                                                     

/usr/include/xorg/dri.h:219: error: expected declaration specifiers or '...' bef

ore 'drm_handle_t'                                                              

ore 'drm_magic_t'                                                               

/usr/include/xorg/dri.h:235: error: expected declaration specifiers or '...' bef

/usr/include/xorg/dri.h:244: error: expected declaration specifiers or '...' bef

ore 'drm_drawable_t'                                                            

/usr/include/xorg/dri.h:262: error: expected declaration specifiers or '...' bef

ore 'drm_clip_rect_t'                                                           

/usr/include/xorg/dri.h:266: error: expected declaration specifiers or '...' bef

ore 'drm_clip_rect_t'                                                           

/usr/include/xorg/dri.h:269: error: expected declaration specifiers or '...' bef

ore 'drm_handle_t'                                                              

/usr/include/xorg/dri.h:344: error: expected declaration specifiers or '...' bef

ore 'drm_context_t'                                                             

/usr/include/xorg/dri.h:348: error: expected declaration specifiers or '...' bef

ore 'drm_context_t'                                                             

/usr/include/xorg/dri.h:353: error: expected '=', ',', ';', 'asm' or '__attribut

e__' before 'DRIGetContext'                                                     

e__' before 'DRIMasterSareaHandle'                                              

                 from clientlx.c:17:                                            

make[2]: *** [clientlx.lo] Erreur 1                                             

make[2]: quittant le répertoire « /var/tmp/portage/x11-drivers/xf86-video-mga-1.

4.9/work/xf86-video-mga-1.4.9/src »                                             

make[1]: *** [all-recursive] Erreur 1                                           

make[1]: quittant le répertoire « /var/tmp/portage/x11-drivers/xf86-video-mga-1.

4.9/work/xf86-video-mga-1.4.9 »                                                 

make: *** [all] Erreur 2

```

```
/usr/include/xf86drm.h:40:17: error: drm.h: No such file or directory 
```

Une idée ?

----------

## El_Goretto

et sans le use flag "dri"?

--

edit: forcément, je viens de mettre au placard ma bécane avec une MGA ce week-end, donc je ne peux pas répliquer les manips. Ceci dit, de tête, pas de dri effectif chez moi, il râlait qu'il n'y avait pas assez de mémoire pour l'activer (tu m'étonnes).

----------

## philius

voir une réinstallation de xorg ??

tout dépend de ce que tu as fait dernièrement ??

un fsck de ton disque aussi pour voir si il n'y a pas des fichiers corrompus ??

essaye de recompiler xorg ??

un "equery hasuse dri" ne me retourne rien sur ma machine

donc pas de flag à ajouter ou supprimer pour tester

peut être sur la tienne ???

-> equery hasuse dri

----------

## loopx

Bah en fait, c'est une machine qui n'a pas été mis à jour depuis des mois (mais moins d'un an). 

Je n'ai pas testé le dri .. et tout ce que j'ai fais actuellement, c'est simplement un sync plus une mise à jour "-uDNav".

Je vais essayer de retirer le dri, je m'en fou en faite vu que c'est un vieux pc et que je n'ai pas besoin de la 3D.

Maintenant, faut pas oublier que je suis en hardened ... et c'est peut être lié à un problème de profile ... car en fait, le profile hardened 2.6 a disparu et j'ai choisi un autre ... je vous envoie ca tantot ..

----------

## loopx

Le flag dri était déjà pas activé :

```
Calculating dependencies... done!

[ebuild     U ] x11-drivers/xf86-video-mga-1.4.9 [1.4.6.1] USE="-debug -dri" 0 kB
```

et pour les profiles, c'est un peu étrange ... il me faut un hardened comme dit plus haut, mais peut être n'est-ce pas le bon ... :

```
serveur loopx # eselect profile list

Available profile symlink targets:

  [1]   default/linux/x86/2008.0

  [2]   default/linux/x86/2008.0/desktop

  [3]   default/linux/x86/2008.0/developer

  [4]   default/linux/x86/2008.0/server

  [5]   default/linux/x86/10.0

  [6]   default/linux/x86/10.0/desktop

  [7]   default/linux/x86/10.0/developer

  [8]   default/linux/x86/10.0/server

  [9]   hardened/x86 *

  [10]  selinux/2007.0/x86

  [11]  selinux/2007.0/x86/hardened

  [12]  selinux/v2refpolicy/x86

  [13]  selinux/v2refpolicy/x86/desktop

  [14]  selinux/v2refpolicy/x86/developer

  [15]  selinux/v2refpolicy/x86/hardened

  [16]  selinux/v2refpolicy/x86/server

  [17]  hardened/linux/x86
```

----------

## El_Goretto

De toute façon, ton profile (le même que moi, donc c'est frocément le bon, kof kof...), c'est pas çà qui fait que ça compile ou non ton drivers graphique  :Smile: . Par contre, un coup de gcc-config -l serait plus instructif. Perso je suis passé de gcc 3.4.6 à gcc 4.3.3 pour d'autres trucs qui ne supportaient plus le 3.4.

Le truc le plus rageant, c'est que j'ai eu un pb avec mga sur hardened il y a fort longtemps (plusieurs mois), mais alors me rappeler comment je m'y suis pris... :/

Bon, je ne te dis pas qu'il faut upgrader ta toolchain tout çà... mais au cas où, ya une doc pour  :Smile: 

----------

## loopx

```
Total: 100 packages (85 upgrades, 1 downgrade, 7 new, 5 in new slots, 2 reinstalls, 1 uninstall), Size of downloads: 412,954 kB

Conflict: 3 blocks

!!! The following installed packages are masked:

- sys-devel/gcc-4.1.2 (masked by: package.mask)

/usr/portage/profiles/hardened/package.mask:

# Hardened versions of gcc-4.0* through gcc-4.2* are not available.

For more information, see the MASKED PACKAGES section in the emerge

man page or refer to the Gentoo Handbook.

Would you like to merge these packages? [Yes/No] ^C

Exiting on signal 2

^C

serveur loopx # gcc-config -l

 [1] i686-pc-linux-gnu-3.4.6

 [2] i686-pc-linux-gnu-3.4.6-hardenednopie

 [3] i686-pc-linux-gnu-3.4.6-hardenednopiessp

 [4] i686-pc-linux-gnu-3.4.6-hardenednossp

 [5] i686-pc-linux-gnu-3.4.6-vanilla

 [6] i686-pc-linux-gnu-4.1.2 *
```

...  :Sad: 

J'ai essayé de recompiler le driver actuelle, et j'obtiens la meme erreur  :Sad:  :

```
config.status: creating config.h                                                                                                                                                    

config.status: executing depfiles commands                                                                                                                                          

make                                                                                                                                                                                

make  all-recursive                                                                                                                                                                 

make[1]: entrant dans le répertoire « /var/tmp/portage/x11-drivers/xf86-video-mga-1.4.6.1/work/xf86-video-mga-1.4.6.1 »                                                             

Making all in src                                                                                                                                                                   

make[2]: entrant dans le répertoire « /var/tmp/portage/x11-drivers/xf86-video-mga-1.4.6.1/work/xf86-video-mga-1.4.6.1/src »                                                         

if /bin/sh ../libtool  --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I..    -I/usr/include/xorg -I/usr/include/pixman-1    -O2 -march=i686 -fomit-frame-pointer -pipe -MT clientlx.lo -MD -MP -MF ".deps/clientlx.Tpo" -c -o clientlx.lo clientlx.c; \                                                                                         

        then mv -f ".deps/clientlx.Tpo" ".deps/clientlx.Plo"; else rm -f ".deps/clientlx.Tpo"; exit 1; fi                                                                           

mkdir .libs                                                                                                                                                                         

 i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/xorg -I/usr/include/pixman-1 -O2 -march=i686 -fomit-frame-pointer -pipe -MT clientlx.lo -MD -MP -MF .deps/clientlx.Tpo -c clientlx.c  -fPIC -DPIC -o .libs/clientlx.o                                                                                                                                

In file included from mga.h:30,                                                                                                                                                     

                 from clientlx.c:17:                                                                                                                                                

/usr/include/xf86drm.h:40:17: error: drm.h: No such file or directory                                                                                                               

In file included from mga.h:30,                                                                                                                                                     

                 from clientlx.c:17:                                                                                                                                                

/usr/include/xf86drm.h:243: error: expected specifier-qualifier-list before 'drm_context_t'                                                                                         

/usr/include/xf86drm.h:256: error: expected specifier-qualifier-list before 'drm_handle_t'
```

----------

## El_Goretto

Euh, ya que la série gcc 4.3 qui ne soit pas masquée en hardened, non?

```
# eix -I gcc

[I] sys-devel/gcc

     Available versions:

        (2.95)  2.95.3-r9 ~2.95.3-r10!s

        (3.1)   3.1.1-r2

        (3.2)   **3.2.2!s 3.2.3-r4

        (3.3)   ~3.3.6-r1!s

        (3.4)   3.4.6-r2!s

        (4.0)   [M]~*4.0.4!s

        (4.1)   [M]4.1.2!s

        (4.2)   [M]~4.2.4-r1!s

        (4.3)   [M]4.3.2-r3!s [M]~4.3.2-r4!s (~)4.3.3-r2!s ~4.3.4!s

        (4.4)   [M]~4.4.1!s

```

Ensuite, si on cherche le fichier manquant pour ta compile:

```
# equery b drm.h                                                                     

[ Searching for file(s) drm.h in *... ]

x11-libs/libdrm-2.4.5 (/usr/include/drm/drm.h)

sys-kernel/hardened-sources-2.6.29 (/usr/src/linux-2.6.29-hardened/include/drm/drm.h)

```

Commencer par mettre à jouer libdrm si ce n'est pas le cas déjà?

----------

## loopx

 :Wink: 

```
serveur src # emerge -pv gcc

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] sys-devel/gcc-3.4.6-r2  USE="gtk hardened nls nptl%* (-altivec) -bootstrap -boundschecking -build -d -doc -fortran -gcj -ip28 -ip32r10k -libffi (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -nossp -objc -test -vanilla" 27,700 kB
```

 :Surprised: 

```
serveur src # emerge -pv libdrm

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] x11-libs/libdrm-2.4.5  USE="-debug" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB
```

et je l'ai déjà réinstallé ...

```
serveur src # ls -l /usr/include/drm/drm.h /usr/src/linux-2.6.25-hardened-r10/include/drm/drm.h

ls: ne peut accéder /usr/src/linux-2.6.25-hardened-r10/include/drm/drm.h: Aucun fichier ou répertoire de ce type

-rw-r--r-- 1 root root 36098 aoû 23 22:23 /usr/include/drm/drm.h
```

ben ca alors, mon kernel est périmé  :Surprised: 

```
serveur src # ls -l /usr/src/linux-2.6.28-hardened-r9/include/drm/drm.h

-rw-r--r-- 1 root root 21684 déc 25  2008 /usr/src/linux-2.6.28-hardened-r9/include/drm/drm.h
```

.. voila qui explique cela ...

Demain, j'install un new kernel et je retry  :Surprised: 

suis étonné quand même, ... moi qui était tout le temps à jour avant  :Very Happy: 

EDIT: 

```
serveur src # equery b drm.h

[ Searching for file(s) drm.h in *... ]

sys-kernel/hardened-sources-2.6.25-r10 (/usr/src/linux-2.6.25-hardened-r10/drivers/char/drm/drm.h)

sys-kernel/hardened-sources-2.6.25-r11 (/usr/src/linux-2.6.25-hardened-r11/drivers/char/drm/drm.h)

sys-kernel/hardened-sources-2.6.28-r9 (/usr/src/linux-2.6.28-hardened-r9/include/drm/drm.h)

x11-libs/libdrm-2.4.5 (/usr/include/drm/drm.h)
```

C'est certainement du au new kernel .. ca a changé de place ^^   

strange quand même, suis curieux de voir si ca fonctionnera ... vu que l'ancienne version (que j'ai déjà compilé) du driver ne veux plus non plus compiler ..

----------

