[Kos-cvs] [kos] Modification CVS par d2

KOS CVS kos-dev <kos-dev@enix.org>
Sun, 15 Dec 2002 20:18:52 +0100 (CET)


Module :	kos
Modifié par :	d2	15/12/02 20:18:52

Fichiers modifiés :
	.              : MkVars 
	loader         : mod.h 
	loader/boot    : loader.c 
	loader/elf32   : _elf32.h alloc.c build.c init.c link.c 
	                 update_tables.c 
	loader/libld   : ld_bfd.h ld_expsym_hash.c 
	loader/utils   : deps.c map.c 
	modules        : Makefile 
	modules/testcpp: main.cc 
Fichiers ajoutés :
	modules/testcbb: Makefile main.cc nocxx.c 

Détails :
Export de variable 2eme methode : utiliser __export_text et __export_data (de la meme facon que __init_text/_data). J'ai laisse l'autre methode EXPORT_FUNCTION(...) pour eviter d'avoir a faire un trop gros sed.
Donc, on se retrouve avec un kernel_module qui contient deux jeux de champs assez proches : exp_cc_funcs et exp_section_funcs (idem avec vars). Le 'cc' veut dire 'C compiler' => ca correspond au champ exported_functions de l'ancienne version, qui utilisait la table des funcs exportes allouee par le compilo via EXPORT_FUNCTION(). Le exp_section_funcs, c'est la nouvelle version, avec allocation a la volee en utilisant la symbol table.
Test avec une classe C++ dont on exporte des methodes (testcbb utilise la classe Toot definie dans testcpp).
Plus rien d'ici l'an prochain en ce qui me concerne. Si vous voulez vous amuser, vous virez la methode EXPORT_FUNCTION() => mettre les __export... dans les protos des .h a la place.