[Kos-cvs] [kos] Modification CVS par d2
KOS CVS
kos-dev <kos-dev@enix.org>
Mon, 27 May 2002 22:54:50 +0200 (CEST)
Module : kos
Modifié par : d2 27/05/02 22:54:50
Fichiers modifiés :
. : MkRules TODO
doc : module.eps module.fig modules.tex
grub : Makefile
loader : Makefile mod.h
loader/boot : loader.c
loader/elf32 : elf32_build.c elf32_link.c elf32_load.c
elf32_private.c elf32_private.h elf32_symbols.c
loader/mm : vmm.c
modules : Makefile module.lds
modules/babel : Makefile
modules/debug : syms.c
modules/fs : Makefile
modules/idt : _syscall.c
modules/init : _init.h _init_modules.c
modules/tty : _ktty.c
modules/x86 : Makefile
utils : mod_check.c
Détails :
- Makefiles: clean dans les subdirs automatique (suffit de definir la
variable SUBDIRS)
- nbre d'init level/post_init illimites (ie limite a 2
milliards). Idem cleanup (4 milliards). Plusieurs fcts d'init dans
un module donne possibles pour le meme niveau d'init/cleanup =>
permet de faire faire l'edition de liens par ld sous linux (ie on a
1 seul gros module grub/kos.elf avec tout plein de ctors/dtors
dedans)...
-> les tableaux des symboles exportes, des ctors/dtors sont definis
par le compilo (cf macros mod.h). Le linker rajoute au debut des
sections .init et .load les offset vers ces tables (cf
modules.lds).
=> Plus besoin de la relocation a la main des marshalls des
symboles exportes, puisque la relocation a lieu en meme temps
que celle de .init/.load, de facon transparente (comme s'il
s'agissait de code normal).
=> Plus de limitations sur le nbre de niveaux d'init (a part pour
distinguer les init des post_init) puisque la table des
ctors/dtors est construite par le compilo.
---> dans grub/Makefile, on utilise 1 seul module : kos.elf, qui
contient le linkage de tous les .o dans le meme ordre que
l'ancien kos.a (d'ou la bouillie infame pour retrouver cet ordre
dans le Makefile).
- maj modules.tex/fig + TODO
TODO : mettre a jour mod_check + proprifier la bouillie de generation
du kos.elf.