Projet système : faq : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Explication de comment compiler le projet sur une architecture 64bits.)
Ligne 7 : Ligne 7 :
  
 
* Avez-vous noté le document sur la conduite du projet ? ([[Media:Psys_roadmap.pdf|PC]] ou [http://sebastien-viardot.imag.fr/Enseignements/System/roadmap_FPGA.pdf FPGA])
 
* Avez-vous noté le document sur la conduite du projet ? ([[Media:Psys_roadmap.pdf|PC]] ou [http://sebastien-viardot.imag.fr/Enseignements/System/roadmap_FPGA.pdf FPGA])
 +
 +
== Astuces ==
 +
 +
=== Compiler le projet sur une architecture 64bits ===
 +
 +
Le projet contient du code assembleur qui ne compile pas sur une machine avec une distribution x86_64. Pour pouvoir compiler le projet, il faut éditer les Makefile et indiquer à gcc, as et ld qu'ils doivent générer un executable pour une cible i386.
 +
Il y a deux fichiers à éditer dans le dossier kernel-base: ''kernel-base/kernel/Makefile'' et ''kernel-base/kernel/kbd_linux/Makefile''.
 +
Remplacez
 +
 +
CC=gcc
 +
AS=as
 +
LD=ld
 +
 +
par
 +
 +
CC=gcc -m32
 +
AS=as -m32
 +
LD=ld -melf_i386
 +
 +
Modifier ces options ne vous gêneront pas pour compiler votre projet sur une machine 32bits classique.
  
 
== BUGS ==
 
== BUGS ==

Version du 20 mai 2010 à 14:18

Mycomputer.png  Deuxième Année  CDROM.png  Informatique 

Conseils

  • Avez-vous noté le document sur la conduite du projet ? (PC ou FPGA)

Astuces

Compiler le projet sur une architecture 64bits

Le projet contient du code assembleur qui ne compile pas sur une machine avec une distribution x86_64. Pour pouvoir compiler le projet, il faut éditer les Makefile et indiquer à gcc, as et ld qu'ils doivent générer un executable pour une cible i386. Il y a deux fichiers à éditer dans le dossier kernel-base: kernel-base/kernel/Makefile et kernel-base/kernel/kbd_linux/Makefile. Remplacez

CC=gcc
AS=as
LD=ld

par

CC=gcc -m32
AS=as -m32
LD=ld -melf_i386

Modifier ces options ne vous gêneront pas pour compiler votre projet sur une machine 32bits classique.

BUGS

undefined "__builtin_stdarg_start", lors d'une compilation avec gcc-4.4

Avec les versions récentes de gcc, la compilation des sources initiales s'arrête sur une erreur dans le fichier shared/stdarg.h

Il faut remplacer ligne 27 "__builtin_stdarg_start" par "__builtin_va_start"