OVH Cloud OVH Cloud

freebsd vers ubuntu

2 réponses
Avatar
akiuni
Bonjour tout le monde,

Je dois porter un programme (C) de freeBSD 5.3 vers linux ubuntu
dapper-drake (6.0 si je me souviens bien).

N'ayant jamais fait ça, je ne sais pas trop comment procéder. Est ce que
quelqu'un connais une procédure qui va bien ?

Nb:

J'ai tenté de compiler mon code sur ubuntu et gcc plante en indiquant
qu'il ne connait pas la bibliothèque if_dl.h

Je l'ai trouvé ici:
( http://packages.ubuntu.com/ -> search if_dl.h )

dans le package "oskit"... Je l'ai installé et tenté de compiler en
liant gcc dessus (option -I), et il me sort une erreur de syntaxe dans
if_dl.h: (syntax error near __dead2 ...)

Pensez vous que ce package soit une bonne solution ?

merci d'avance
akiuni

2 réponses

Avatar
Paul Gaborit
À (at) Mon, 15 Jan 2007 17:40:32 +0100,
akiuni écrivait (wrote):
Je dois porter un programme (C) de freeBSD 5.3 vers linux ubuntu
dapper-drake (6.0 si je me souviens bien).

N'ayant jamais fait ça, je ne sais pas trop comment procéder. Est ce
que quelqu'un connais une procédure qui va bien ?

Nb:

J'ai tenté de compiler mon code sur ubuntu et gcc plante en indiquant
qu'il ne connait pas la bibliothèque if_dl.h


Ce n'est pas une bibliothèque mais un fichier d'en-tête permettant de
déclarer/définir des "objets" C (types, fonctions externes, macros,
etc.).

En l'occurence, ce fichier semble définir le type 'struct sockaddr_dl'
et la macro 'LLADDR' (je passe sur la partie KERNEL car j'espère que
vous ne tentez pas de porter un module).

Je l'ai trouvé ici:
( http://packages.ubuntu.com/ -> search if_dl.h )

dans le package "oskit"... Je l'ai installé et tenté de compiler en
liant gcc dessus (option -I), et il me sort une erreur de syntaxe dans
if_dl.h: (syntax error near __dead2 ...)

Pensez vous que ce package soit une bonne solution ?


À mon avis, non. En tous cas, ce ne serait pas un véritable portage
puisque l'objectif de ce package semble être d'implémenter les appels
systèmes *BSD manquant dans Linux.

Il vaudrait mieux identifier pourquoi vous avez besoin de cette
structure. Ce qui revient à trouver les fonctions FreeBSD qui
l'utilisent et qui sont utilisées par votre code puis à trouver les
fonctions équivalentes dans Linux (avec éventuellement leurs propres
structures de données et leurs propres fichiers d'en-tête).

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

Avatar
akiuni
Salut,

merci pour vos réponses. J'ai oublié de préciser que le programme en
question était assez petit (1500 lignes environ). J'ai finalement pris
le parti de le "reprogrammer" en utilisant les entêtes de Linux, Ca
semble fonctionner jusqu'à présent

merci !
akiuni

akiuni wrote:

Je dois porter un programme (C) de freeBSD 5.3 vers linux ubuntu
dapper-drake (6.0 si je me souviens bien).


Bon courage. Va falloir un Makefile par distribution, voire par version.

J'ai tenté de compiler mon code sur ubuntu et gcc plante en indiquant
qu'il ne connait pas la bibliothèque if_dl.h


Qu'est-ce que je disais :-)