[Kos-dev] Mechant bug dans les recents binutils et how to contact binutils-dev

Thomas Petazzoni kos-dev@enix.org
Thu, 24 May 2001 18:44:39 +0200


salut,

comme je vous en avais parle il y a quelques jours (semaines ?), les
recents binutils posent un probleme : ils ne mettent pas correctement a
jour le Phdr (Program Header) des fichiers ELF crees. Et ils generent
donc une erreur au chargement par GRUB.

En testant un petit OS (RhinOS, pas KOS), il me generait l'erreur 28
"Cannot fit image into memory", en effet, l'adresse physique pour
l'image etait 0x80. Si on la modifie a la main en hexa a la valeur
correcte, aka 0x201000, le noyau est lance sans que Grub ronchonne.

Mais (ce n'est pas fini), le noyau ne trouve plus ses chaines de
caracteres, il affiche n'importe quoi.  En effet, dans la structure :

typedef struct
  {
    Elf32_Word p_type;
    Elf32_Off p_offset;
    Elf32_Addr p_vaddr;
    Elf32_Addr p_paddr;
    Elf32_Word p_filesz;
    Elf32_Word p_memsz;
    Elf32_Word p_flags;
    Elf32_Word p_align;
  }
Elf32_Phdr;

les champs p_paddr, p_filesz et p_memsz (au moins) sont completement
faux lorsqu'ils sont generes par des recents binutils. J'ai essaye de
les regenerer a la main, mais ils sont complexes a calculer, et oour
l'instant les valeurs mises plus ou moins au pif (en s'inspirant d'une
version faite avec de vieux binutils) ne font pas mieux fonctionner le
bordel.

Bref, je voulais juste vous exposer le bug, mais surtout savoir comment
contacter les mecs qui developpent les binutils, et tout ca... liste de
diffusion, email, site web, bref ou aller ?

Je pensais que c'etait Grub qui petait un cable avec les nouveaux
binutils, mais pas du tout, il va bien notre ami Grub, c'est nos
binutils qui font n'importe quoi avec le Program Header. j'ai pas la doc
des nouveaux binutils, ptet c'est une option dans le script LDS, mais ou
puis je trouver de l'info ?

amicalement,

thomas
-- 
PETAZZONI Thomas
thomas.petazzoni@meridon.com     UIN : 34937744
Projet KOS : http://kos.enix.org
Page Perso : http://www.enix.org/~thomas/