URL: https://linuxfr.org/forums/linux-embarque/posts/80386-linux-1-0-probleme-de-compil Title: [80386][linux 1.0] Problème de compil Authors: ptitcois Date: 2015年04月16日T00:26:34+02:00 License: CC By-SA Tags: Score: 1 Bonjour, j'ai posté dans la partie embarqué alors que je pose une question pour du pc, mais bon, j'ai trouvé un vieux PC (mais alors vieux, mais vieux..., des années 90, mais du début, voir fin 80, bref...). La config en question - Ram: 4 Mo - Proco: 80386 Comme le bazar est assez ancien et plus très courrant, je me suis permis de mettre le post en embarqués. Je pensait prendre une distro hyper light (genre BasicLinux), mais ces trucs, ce sont des gouffres à RAM (pas moint de 8Mo qu'ils demandent, et pour la version light). Du coups je pensais me faire un truc quasi ex-nihilo. Je me suis fait mon petit environnement de compilation croisée (c'est plus propre que de rajouter des -m32 partout non ?). Alors déjà la version de linux (1.0) est déja assez ancienne (1994), quelques truc chelou (genre '#ifndef 0', gcc aime pas trop), ça passe c'est pas très long. Bon le problème que j'ai actuellement est le suivant ` error: 'asm' operand has impossible constraints__asm__("cld\n\t"` le code en question c'est la fonction 'strchr' de string.h ```C extern inline char * strchr(const char * s,char c) { register char * __res __asm__("ax"); __asm__("cld\n\t" "movb %%al,%%ah\n" "1:\tlodsb\n\t" "cmpb %%ah,%%al\n\t" "je 2f\n\t" "testb %%al,%%al\n\t" "jne 1b\n\t" "movl 1,ドル%1\n" "2:\tmovl %1,%0\n\t" "decl %0" :"=a" (__res):"S" (s),"0" (c):"si"); return __res; } ``` J'ai regardé sur des forums, j'ai pas trouvé grand chose de concluant... J'ai refait la fonction en C, et là je vois que pour toutes les fonctions (avec l'__asm__) c'est la meme chose, ou beaucoup en tout cas. Donc savez vous d'ou ça vient ? (Peut etre compilable par le gcc de l'époque: 2.4.5, et plus maintenant, comme pour le #ifndef 0 ?) Et surtout, savez vous comment corriger/contourner ces erreurs ? Merci, Fanch