Lut journal,
Voila, j'ai essayé de compiler un petit programme très simple sur mon bi processor 800, et celui-ci ne compile pas ;(
Mettant bien pris la tete dessus, et ayant demandé conseil à plusieurs personnes qui n'ont pas su me répondre, je commence à desesperer.
Dans sa forme, le programme ressemble à ça:
#include <stdio.h>
#include <asm/smp.h>
int main() {
#ifdef CONFIG_SMP
fprintf(stdout, "yeah");
#endif
exit (0);
}
smp.h utilise le fichier <linux/config.h>.
Le probleme c'est que lorsque CONFIG_SMP n'est pas définit, ça compile.
Lorsqu'il est défini à 1, ça ne compile pas (il faut qu'il soit 1 pour les bi procs):
In file included from /usr/include/asm/smp.h:17,
from plouf.c:2:
/usr/include/asm/fixmap.h:80: error: parse error before "pgprot_t"
In file included from /usr/include/asm/smp.h:21,
from plouf.c:2:
/usr/include/asm/apic.h:85: error: parse error before "unsigned"
Je n'ai pas touché au code de fixmap.h, ni apic.h, voila les deux lignes incréminées:
extern void __set_fixmap (enum fixed_addresses idx, unsigned long phys, pgprot_t flags);
extern struct pm_dev *apic_pm_register(pm_dev_t, unsigned long, pm_callback);
Alors une idée ?
# Re: Probleme en C insoluble
Posté par durandal . Évalué à 1.
[^] # Re: Probleme en C insoluble
Posté par Code34 (site web personnel) . Évalué à 1.
[^] # Re: Probleme en C insoluble
Posté par jm trivial (site web personnel) . Évalué à -1.
[^] # Re: Probleme en C insoluble
Posté par Christophe . Évalué à 1.
# Re: Probleme en C insoluble
Posté par Anonyme . Évalué à 2.
[^] # Re: Probleme en C insoluble
Posté par Code34 (site web personnel) . Évalué à 1.
[^] # Re: Probleme en C insoluble
Posté par Code34 (site web personnel) . Évalué à 2.
[^] # Re: Probleme en C insoluble
Posté par Christophe . Évalué à 1.
# Re: Probleme en C insoluble
Posté par Christophe . Évalué à 1.
[^] # Re: Probleme en C insoluble
Posté par Code34 (site web personnel) . Évalué à 1.
[^] # Re: Probleme en C insoluble
Posté par Christophe . Évalué à 1.
[^] # Re: Probleme en C insoluble
Posté par Code34 (site web personnel) . Évalué à 1.
[^] # Re: Probleme en C insoluble
Posté par Christophe . Évalué à 1.
. pgprot_t quelque part :)
il est defini dans noyau-linux/include/asm-i386/page.h tel que
typedef struct { unsigned long pgprot; } pgprot_t;
. pm_dev_t dans linux/pm.h qui est inclus par asm/apic.h
mais je peux pas aider plus comme j'ai pas de config SMP sous la main
[^] # Re: Probleme en C insoluble
Posté par Code34 (site web personnel) . Évalué à 1.
Effectivement, pour le Config_smp, c'est dur de trouver quelqu'un qui l'utilise et qui pourrait faire des tests. Mais hier, j'ai trouvé quelqu'un qui avait le support smp d'activé (avec un seul proc) et il avait la meme erreur de compilation.
Par contre, on m'a dit qu'en module ça marcherait peut etre ? Je ne sais pas pourquoi, ni comment, mais je vais tester tout à l'heure.
Merci pour ton coup de main ;)
# Re: Probleme en C insoluble
Posté par Obsidian . Évalué à 1.
# Re: Probleme en C insoluble
Posté par Nicolas Regnault . Évalué à 1.
Un petit conseil: je ne sais pas ce que tu veux faire mais j'eviterais a ta place le test du SMP via la configuration du noyau linux: ton programme peut etre amene a tourner sous un autre unix. Dans mes codes, je prefere avoir une option externe ou j'indique combien de processeurs le programme doit utiliser. Cela permet en particulier de ne pas squatter toute la puissance de la machine si tu dois la partager. Dans le pire des cas, l'option processeur=1 est traite sans thread.
Bon courage.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.