À première vue, cela ressemble beaucoup à un problème classique pour les modules qui ne sont pas intégrés dans le noyau : les structures de données et les fonctions dans le noyau évoluent avec le temps, et les composants inclus dans le noyau sont mis à jour au fur et à mesure.
(Dans les cas classiques, le module externe pourrait ne pas être au courant des modifications en question, d'où de possibles incompatibilités/erreurs de compilation.)
Mais pour le coup, il pourrait être question d'un compilateur devenu plus strict avec le temps (cf. l'option -Werror=incompatible-pointer-types)...
Voici le type attendu par la fonction pour le paramètre en question : typedef void (*usb_complete_t)(struct urb *);
Voici le type spécifié dans les sources du module externe (./NETIF/include/rt_os_util.h) : typedef VOID (*USB_COMPLETE_HANDLER)(VOID *);
Tu peux essayer de changer cela en : typedef VOID (*USB_COMPLETE_HANDLER)(struct urb *);
(qui est plus précis sur le type de pointeur manipulé, void* étant générique)
Aucune garantie que cela permette de compiler l'ensemble avec succès, mais est-ce que ça peut être pire que la situation actuelle ? :)
[^] # Patch patch patch
Posté par Cyril Brulebois (site web personnel) . En réponse au message compilation Clé Wifi TP-LINK. Évalué à 1.
À première vue, cela ressemble beaucoup à un problème classique pour les modules qui ne sont pas intégrés dans le noyau : les structures de données et les fonctions dans le noyau évoluent avec le temps, et les composants inclus dans le noyau sont mis à jour au fur et à mesure.
(Dans les cas classiques, le module externe pourrait ne pas être au courant des modifications en question, d'où de possibles incompatibilités/erreurs de compilation.)
Mais pour le coup, il pourrait être question d'un compilateur devenu plus strict avec le temps (cf. l'option
-Werror=incompatible-pointer-types)...Voici le type attendu par la fonction pour le paramètre en question :
typedef void (*usb_complete_t)(struct urb *);Voici le type spécifié dans les sources du module externe (
./NETIF/include/rt_os_util.h) :typedef VOID (*USB_COMPLETE_HANDLER)(VOID *);Tu peux essayer de changer cela en :
typedef VOID (*USB_COMPLETE_HANDLER)(struct urb *);(qui est plus précis sur le type de pointeur manipulé,
void*étant générique)Aucune garantie que cela permette de compiler l'ensemble avec succès, mais est-ce que ça peut être pire que la situation actuelle ?
:)Debian Consultant @ DEBAMAX