#1 Le 16/03/2008, à 21:59
- Crokan-O-Shokola
CHangement de compilateur C - librairie
Bonjour à tous,
est-ce que quelqu'un pourrait me dire s'il est possible de "changer" de compilateur?
un système qui emploie la librairie uClibc manque certaines fonctions qui sont dans la glibc...
Comment changer?
Merci d'avance
C.
Hors ligne
#2 Le 17/03/2008, à 00:06
- Link31
Re : CHangement de compilateur C - librairie
Donc en fait, tu veux "changer de libc" ?
Mauvaise idée.
Hors ligne
#3 Le 17/03/2008, à 00:45
- Crokan-O-Shokola
Re : CHangement de compilateur C - librairie
oui c'est à peu près l'histoire
merci de l'avis... c'est déjà ça de pris.
mais encore? tu peux développer ?
Dernière modification par Crokan-O-Shokola (Le 17/03/2008, à 00:46)
Hors ligne
#4 Le 17/03/2008, à 00:57
- Link31
Re : CHangement de compilateur C - librairie
C'est simple, si tu veux changer de libc (c'est-à-dire passer de uClibc à Glibc, pas seulement la mettre à jour), alors il te faut compiler un cross-compilateur, puis recompiler tout ton système.
Hors ligne
#5 Le 17/03/2008, à 09:22
- Crokan-O-Shokola
Re : CHangement de compilateur C - librairie
Et en quoi est-ce une mauvaise idée?
Parce que je suis un noob et que donc ca risque de planter(je dis ca de manière objective) ou bien il y a de reels risques d'instabilité ou autres ...
Parce que dans l'absolu ca me servirait bien...
Hors ligne
#6 Le 17/03/2008, à 19:12
- Link31
Re : CHangement de compilateur C - librairie
Je disais surtout ça parce que ça me semble vraiment trop compliqué et trop risqué. Personnellement je me considère comme assez à l'aise dans ce domaine, et pourtant je ne prendrais pas le risque de casser un système en touchant à la libc.
Si tu en as la possibilité, essaie de réinstaller le système en te basant dès le début sur la glibc.
C'est peut-être possible de simplement compiler un cross-compilateur contre la glibc, et l'utiliser pour compiler certains programmes spécifiques. Il faut voir si ça te suffirait. Mais ça reste très compliqué à mettre en place. Renseigne-toi sur la façon dont on installe un cross-compilateur pour uClibc sous Debian, et adapte les commandes pour le faire pour la glibc.
Dernière modification par Link31 (Le 17/03/2008, à 19:15)
Hors ligne
#7 Le 17/03/2008, à 20:38
- douarn
Re : CHangement de compilateur C - librairie
iaorana
je ne sais pas ce que tu veux faire exactement mais pour te faire une chaine de crosscompilation assez facilement tu devrais jeter un oeil à 2 metadistributions : Buildroot et T2SDE.
nana
Hors ligne
#8 Le 18/03/2008, à 09:41
- Crokan-O-Shokola
Re : CHangement de compilateur C - librairie
Bon je vous explique le problème de manière plus détaillée...
J'ai un Disque Dur LAN Mybook WorldEdition branché sur mon routeur qui s'avère en fait être bien plus qu'un disque dur car il y a un OS linux installé dessus... A l'aide de quelques hacks que l'on retrouve facilement sur la toile, je peux à présent accéder au système en ssh.
A partir de là, les possibilités sont plus ou moins infinies...
exemple : techniquement le socket usb à l'arrière n'est censé pouvoir recevoir que des unités de stockage ...
"MIIIIP" faux! j'y ai branché un hub usb, et y ai branché mon imprimante et un disque externe, ca me fait un serveur d'impression en plus.
mais ici le problème de la libc s'est posé, j'ai voulu installer HPLIP pour, en plus, supporter les fonctionnalités de scan de mon imprimante 'HP PSC1400 Series' et là ca coince.
truc du style "_guard not recognized".
D'après un certain forum ce serait du à la libc.
et donc je suis limité.
voilà l'histoire
Hors ligne
#9 Le 18/03/2008, à 09:43
- Crokan-O-Shokola
Re : CHangement de compilateur C - librairie
voir ce topic ou j'en parle plus
Hors ligne
#10 Le 18/03/2008, à 12:07
- douarn
Re : CHangement de compilateur C - librairie
C'est pas très clair dans ma ptite tête. Je tente le schéma qui vaut un long discours :
LANMybookWorldEdition(OS=linux, architecture= ?)
|
|->hubusb
|
|->DD externe aditionnel: ok
|
|->HP=>imprimante: ok avec CUPS installé sur LanMBWE)
|=>scanner: ko nécessite crosscompilation HPLIP ?
Si j'ai bien compris, tu dois avoir un embedded linux sur ton routeur qui n'est très certainement pas une architecture i386.... De plus l'autoinstall de HPLIP sur ton routeur (voir ton lien) te dit que tu n'as pas python. Pour finir il est très probable que ton embedded linux soit quelque chose de très minimaliste. Si j'étais à ta place j'utiliserais buildroot pour me faire une chaine de crosscompilation, je me crosscompilerais HPLIP et ses dépendances pour ensuite mettre HPLIP sur le routeur.
PS : ce domaine n'est pas super facile mais si tu as envie de mettre les mains dans le cambouis...
Hors ligne
#11 Le 18/03/2008, à 12:27
- Crokan-O-Shokola
Re : CHangement de compilateur C - librairie
tout d'abord, merci de t'intéresser à mon problème.
Ensuite meme si je vois le cambouis arriver à grand pas, j'en ai pas vraiment peur. Mais je vais avoir besoin qd meme d'une voix off pour me guider un peu, mais ca me tente de chipotter !!
Une chose néanmoins, il y a déjà énormément de données dessus, que je ne peux pas sauvegarder ailleurs pour le moment. Donc s'il y a un risque de perte, je préfère laisser tomber pour l'instant. Si c'est pas un risque alors je suis prêt pour l'aventure !!
--------------------------
je ne connais pas l'architecture du MBW mais j'ai lu quelque part qu'effectivement ce n'est pas une i386.
Effectivement, CUPS est installé sur le MBW, c'est bien passé.
si je le lance via "/usr/bin/cupsd start"
il me répond
"cupsd: can't resolve symbol '__guard' "
par contre si je le lance via /etc/init.d/cupsd start
ca passe niquel.
donc ici j'ai contourné le problème.
Ensuite...
Effectivement, je voudrais me servir du scanner, et pour cela j'ai trouvé HPLIP.
Je l'ai trouvé car il est installé (de base) sur mon laptop (7.10), j'ai trouvé pas mal d'infos dessus... il existe un auto-installeur et des sources...
mais comme tu l'as vu... pour l'auto-installeur, il faut python.
J'ai installé python via optware. Ca n'a pas fonctionné
Je pensais que il fallait un alias redirigeant "python" vers"/opt/bon/python" mais ca n'a pas fonctionné non plus.
Je me suis attaqué aux sources ...
Le problème est arrivé quand j'ai voulu faire le "make" il me répond "pas de make file" ...
et là je suis bloqué...:D
donc en fait, en un sens, le problème de la librairie que j'avais au début du topic est plus ou moins contourné pour l'instant, mais il en a amené d'autres...
peut-être qu'en fait je devrais faire un autre topic...
je pensais continuer la discussion tranquillou...
Dans l'absolu, je me dit que ca va remonter à un moment ce truc de libc donc pourquoi pas le régler une fois pour toutes.
Hors ligne
#12 Le 18/03/2008, à 13:21
- douarn
Re : CHangement de compilateur C - librairie
En fait ce qu'il te faut c'est HPLIP cross compilé pour l'archi de ton routeur. Tel que je vois l'affaire se présenter il faudrait d'abord que tu en sache un peu plus sur ton routeur. C'est un mips, un arm, ...? quelle version du kernel? Avec quelles versions de binutils et gcc ton embedded linux a été fait ?
Ensuite pour avoir buildroot tu tapes dans un terminal sur ton ordi
svn co svn://uclibc.org/trunk/buildroot
puis
make menuconfig
qui te permet sélectionner l'archi, binutils, gcc et le kernel que tu désires
enfin
make
Au bout de quelques temps tu auras une chaine de crosscompilation qui te permettra de crosscompiler HPLIP à partir des sources après avoir tapé un ./configure avec les bonnes options. Si je saisi bien, python n'est utilisé que par l'autoinstalleurr (me gourre-je?)? (De toute manière il y a moyen de crosscompiler python avec buildroot)
J'espère que celà t'aidera
nana
Hors ligne
#13 Le 18/03/2008, à 13:55
- Crokan-O-Shokola
Re : CHangement de compilateur C - librairie
HPLIP cross compilé pour l'archi de ton routeur
J'imagine que tu parles de serveur, pas routeur.
merci pour ces infos en tous cas, mais je vais devoir chercher des détails sur tout ce dont tu parles, car pas grand chose me parle...
Comme je l'ai dit, je suis encore débutant...
mips?
arm?
kernel (ca je vois vaguement)?
version de binutils ?
version de gcc ?
buildroot ?
sélectionner les version que je désires? J'avoue ne pas savoir ce que je désire, je sais ce que je veux faire mais je n'ai aucune idée de ce dont j'ai besoin pour le faire...
et enfin ... chaine de cross-compilation... va falloir rechercher la dessus aussi.
Tout plein de nouvelles choses, youhouw!!
Hors ligne
#14 Le 18/03/2008, à 15:25
- douarn
Re : CHangement de compilateur C - librairie
une chaine de cross compilation c'est tout ce dont tu as besoin pour compiler sur ton ordi (i386 a priori) une appli executable sur une autre architecture (mips par exemple). Tu peux créer ça avec buildroot.
Mais avec ce que j'ai compris de ta problématique, il te faut commencer par récolter les infos nécessaires.
Hors ligne