Forum Linux.général Compilation de alsa-lib & headers de linux 2.6.9

Posté par  (site web personnel) .
Étiquettes : aucune
0
4
déc.
2004
Bjr à tous,
Aujourd'hui un problème auquel je n'arrive pas à bout:
La compilation de alsa-lib sur un système dont les en-têtes sont basés sur celle d'un noyau 2.6.9, mais j'ai droit à une belle erreur d'include sur little_endian.h
pour faire simple:
In file included from /usr/include/asm/byteorder.h:57,
from fm.c:33:
/usr/include/linux/byteorder/little_endian.h:43: error: parse error before "__cpu_to_le64p"
/usr/include/linux/byteorder/little_endian.h: In function `__cpu_to_le64p':
/usr/include/linux/byteorder/little_endian.h:45: error: `__le64' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h:45: error: (Each undeclared identifier is reported only once
/usr/include/linux/byteorder/little_endian.h:45: error: for each function it appears in.)
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:47: error: parse error before '*' token
/usr/include/linux/byteorder/little_endian.h: In function `__le64_to_cpup':
/usr/include/linux/byteorder/little_endian.h:49: error: `p' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:51: error: parse error before "__cpu_to_le32p"
/usr/include/linux/byteorder/little_endian.h: In function `__cpu_to_le32p':
/usr/include/linux/byteorder/little_endian.h:53: error: `__le32' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:55: error: parse error before '*' token
/usr/include/linux/byteorder/little_endian.h: In function `__le32_to_cpup':
/usr/include/linux/byteorder/little_endian.h:57: error: `p' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:59: error: parse error before "__cpu_to_le16p"
/usr/include/linux/byteorder/little_endian.h: In function `__cpu_to_le16p':
/usr/include/linux/byteorder/little_endian.h:61: error: `__le16' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:63: error: parse error before '*' token
/usr/include/linux/byteorder/little_endian.h: In function `__le16_to_cpup':
/usr/include/linux/byteorder/little_endian.h:65: error: `p' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:67: error: parse error before "__cpu_to_be64p"
/usr/include/linux/byteorder/little_endian.h: In function `__cpu_to_be64p':
/usr/include/linux/byteorder/little_endian.h:69: error: `__be64' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h:69: error: parse error before "__swab64p"
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:71: error: parse error before '*' token
/usr/include/linux/byteorder/little_endian.h: In function `__be64_to_cpup':
/usr/include/linux/byteorder/little_endian.h:73: error: `p' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:75: error: parse error before "__cpu_to_be32p"
/usr/include/linux/byteorder/little_endian.h: In function `__cpu_to_be32p':
/usr/include/linux/byteorder/little_endian.h:77: error: `__be32' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h:77: error: parse error before "__swab32p"
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:79: error: parse error before '*' token
/usr/include/linux/byteorder/little_endian.h: In function `__be32_to_cpup':
/usr/include/linux/byteorder/little_endian.h:81: error: `p' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:83: error: parse error before "__cpu_to_be16p"
/usr/include/linux/byteorder/little_endian.h: In function `__cpu_to_be16p':
/usr/include/linux/byteorder/little_endian.h:85: error: `__be16' undeclared (first use in this function)
/usr/include/linux/byteorder/little_endian.h:85: error: parse error before "__swab16p"
/usr/include/linux/byteorder/little_endian.h: At top level:
/usr/include/linux/byteorder/little_endian.h:87: error: parse error before '*' token
/usr/include/linux/byteorder/little_endian.h: In function `__be16_to_cpup':
/usr/include/linux/byteorder/little_endian.h:89: error: `p' undeclared (first use in this function)

Evidement suite à ca y a le fichier source d'origine qui est engueuler:
fm.c: In function `snd_instr_fm_convert_to_stream':
fm.c:81: error: `__be32' undeclared (first use in this function)
fm.c:81: error: parse error before '{' token
fm.c:81: error: parse error before ')' token
fm.c:81: error: `__x' undeclared (first use in this function)
fm.c: At top level:
fm.c:81: error: parse error before ')' token
fm.c:106: error: `put' undeclared here (not in a function)
fm.c:106: warning: data definition has no type or storage class
fm.c:107: warning: initialization makes pointer from integer without a cast
fm.c:107: warning: data definition has no type or storage class
fm.c:108: error: parse error before "return"

J'ai essayé des magouilles dans tout les sens sans résultat
alors dans les magouilles testées:
Supprimer l'include <asm/byteorder.h>
Il compil mais a la fin j'ai droit à certaines fonctions manquantes (fonctions qui sont definies en dur dans l'include...... c'est du propre)
Copie collage de ce dont le fichier a besoin toujours sans succes

Alors de ce que j'ai lu ca venait du fait que j'utilise les entetes d'un 2.6 au lieu de celles d'un 2.4, mais j'aimerais tant que possible rester en 2.6
Et de preference (un peu moins forte la preference la) ne pas avoir à modifier l'en tete incriminée.

Merci d'avance :)

PS:Y a pas de section LFS? rolala
  • # 2.6.10-rc3

    Posté par  (site web personnel) . Évalué à 2.

    Bon d'apres mes investigations ca ne fait ca qu'avec le 2.6.9 et changer de version (passer en 2.6.10-rcX ou en 2.6.7 (je sais pas pour le 2.6.8)) corrige ca
    Ca me laisse un peu sur ma faim quand meme....
    Enfin bref ca marche

Suivre le flux des commentaires

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