OVH Cloud OVH Cloud

erreur à la compilation

3 réponses
Avatar
brno
Salut,
J'ai des soucis au cours de la compilation de mga_vid
Voilà la sortie de make dans le dossier ~/MPlayer-1.Opre2/drivers

cc -02 -D__KERNEL__ -DMODULE -include
/usr/scr/linux-2.4.20-8/include/linux/modversions.h -Wall
-I/usr/src/linux-2.4.20-8/include/ -c mga_vid.c
mga_vid.c : Dans la fonction "mga_vid_mmap":
mga_vid.c:1469: AVERTISSEMENT: passage de arg 1 de
"remap_page_range_R2baf18f2" transforme en pointeur un entier sans
transtypage
mga_vid.c:1469: type incompatible pour l'argument 4 de
"remap_page_range_R2baf18f2"
mga_vid.c:1469: pas assez d'argument pour la fonction
"remap_page_range_R2baf18f2"
make: *** [mga_vid.o] Erreur 1

Cette installation ne m'avait pas posé de problèmes sous suse 8.0, mais là,
avec une RedHat9... Comment c'est possible ?
Sûrement pas un problème de configuration.
Peut-être dù à la version de gcc (3.2.2 20030222 (Red Hat linux 3.2.2-5)) ?

Merci de votre aide.

3 réponses

Avatar
Arnaud ARZUFFI
brno wrote:

Salut,
J'ai des soucis au cours de la compilation de mga_vid
Voilà la sortie de make dans le dossier ~/MPlayer-1.Opre2/drivers

cc -02 -D__KERNEL__ -DMODULE -include
/usr/scr/linux-2.4.20-8/include/linux/modversions.h -Wall
-I/usr/src/linux-2.4.20-8/include/ -c mga_vid.c
mga_vid.c : Dans la fonction "mga_vid_mmap":
mga_vid.c:1469: AVERTISSEMENT: passage de arg 1 de
"remap_page_range_R2baf18f2" transforme en pointeur un entier sans
transtypage
mga_vid.c:1469: type incompatible pour l'argument 4 de
"remap_page_range_R2baf18f2"
mga_vid.c:1469: pas assez d'argument pour la fonction
"remap_page_range_R2baf18f2"
make: *** [mga_vid.o] Erreur 1

Cette installation ne m'avait pas posé de problèmes sous suse 8.0, mais
là,
avec une RedHat9... Comment c'est possible ?
Sûrement pas un problème de configuration.
Peut-être dù à la version de gcc (3.2.2 20030222 (Red Hat linux 3.2.2-5))
?

Merci de votre aide.


Sans doute la version de gcc qui est moins tolérante par rapport à une
programmation "douteuse"...


--
Arnaud ARZUFFI

Avatar
J. Mayer
On Thu, 13 Nov 2003 22:14:43 +0100, Arnaud ARZUFFI wrote:

brno wrote:

Salut,
J'ai des soucis au cours de la compilation de mga_vid
Voilà la sortie de make dans le dossier ~/MPlayer-1.Opre2/drivers

cc -02 -D__KERNEL__ -DMODULE -include
/usr/scr/linux-2.4.20-8/include/linux/modversions.h -Wall
-I/usr/src/linux-2.4.20-8/include/ -c mga_vid.c
mga_vid.c : Dans la fonction "mga_vid_mmap":
mga_vid.c:1469: AVERTISSEMENT: passage de arg 1 de
"remap_page_range_R2baf18f2" transforme en pointeur un entier sans
transtypage
mga_vid.c:1469: type incompatible pour l'argument 4 de
"remap_page_range_R2baf18f2"
mga_vid.c:1469: pas assez d'argument pour la fonction
"remap_page_range_R2baf18f2"
make: *** [mga_vid.o] Erreur 1

Cette installation ne m'avait pas posé de problèmes sous suse 8.0, mais
là,
avec une RedHat9... Comment c'est possible ?
Sûrement pas un problème de configuration.
Peut-être dù à la version de gcc (3.2.2 20030222 (Red Hat linux 3.2.2-5))
?

Merci de votre aide.


Sans doute la version de gcc qui est moins tolérante par rapport à une
programmation "douteuse"...


Non: gcc ne peut pas inventer les arguments d'une fonction s'il ne
sont pas dans le code... C'est une erreur, quelle que soit la version
de gcc ou même le compilo utilisé.


Avatar
Daniel Déchelotte

| J'ai des soucis au cours de la compilation de mga_vid
| Voilà la sortie de make dans le dossier ~/MPlayer-1.Opre2/drivers
|
| [avertissements]
| mga_vid.c:1469: pas assez d'argument pour la fonction
| "remap_page_range_R2baf18f2"
| make: *** [mga_vid.o] Erreur 1
|
| [...]
| Peut-être dù à la version de gcc (3.2.2 20030222 (Red Hat linux
| 3.2.2-5)) ?

Mmm non, si l'appel de fonction ne donne pas le bon nombre d'arguments, le
compilo n'y peut pas grand chose, quel qu'il soit. Regarde a la ligne
1469, et compare avec la definition de la fonction remap_page_range_-
R2baf18f2. Intuitivement, la configuration de mplayer n'est pas compatible
avec la configuration du noyau. Cherche des #ifdef ou similaires.

[Bon, je l'ai fait.]

Alors le code qui fait mal est :

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,3)
if(remap_page_range(vma, vma->vm_start, card->mem_base + card->src_base,
vma->vm_end - vma->vm_start, vma->vm_page_prot))
#else
if(remap_page_range(vma->vm_start, card->mem_base + card->src_base,
vma->vm_end - vma->vm_start, vma->vm_page_prot))
#endif

et il merdoie dans la branche #else. Donc il a bien detecte que tu avais
un noyau 2.4.x (moins que 2.5.3, en tout cas), mais ton noyau fournit
quand meme un remap_page_range avec 5 arguments. C'est un noyau "a la
vanille" (venant de kernel.org) ou, comme je le crois, venant de RedHat,
avec leurs rustines ? Regarde dans ton /usr/src/linux/include/linux/mm.h,
s'il y a effectivement 5 arguments. Tu peux meme essayer de rajouter un
premier parametre "vma" a l'appel de fonction (a la ligne 1469), ca
pourrait marcher.

Bref :
http://www.mplayerhq.hu/DOCS/HTML/fr/install.html
http://www.mplayerhq.hu/DOCS/HTML/fr/devices.html#mga_vid
et google pour cette histoire de noyau trafique par RH.

Daniel, qui espere qu'il aura aide a compiler _un_ truc pendant cette
journee par ailleurs de m...
--
http://yo.dan.free.fr/