[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.