[SOS] Suite de Urgent !

Thomas Petazzoni thomas.petazzoni at enix.org
Jeu 2 Juin 12:01:49 CEST 2005


Salut,

Cyril Dupuit wrote:

> `/mnt/win_c2/Thomas/Temp/sos-code-article7.5/userland'

Encore une fois, je te recommande *vivement* de ne pas travailler dans 
une partition VFAT, tu risques d'avoir de grosses surprises.

> size sos.elf
>   text    data     bss     dec     hex filename
>  78348 1570924   21932 1671204  198024 sos.elf

Effectivement, sos.elf est très gros. Tu es sûr que tu n'as pas rajouté 
des données ? Tu es sûr que tu ne compiles pas avec -g ?

En effet, chez moi, la compilation de l'article 7.5 donne:

    text    data     bss     dec     hex filename
   82076  277128   21760  380964   5d024 sos.elf

> Sympa ton truc sur le patch de l'article 7.5 mais pour le Makefile, ça ne
> marche pas. Il me marque :

Je viens de retester de nouveau sur une version *PROPRE* des sources de 
l'article 7.5, et ça passe très bien. Tu es sûr que tu l'as appliqué sur 
une version *complètement* propre des sources de l'article 7.5 ?

La sortie :

> patching file userland/Makefile
> Hunk #1 FAILED at 31
> Hunk #2 FAILED at 47
> Hunk #3 FAILED at 91
> patch: **** Can't set permissions on file userland/Makefile : Operation not
> permitted

  1) Laisse supposer que tu avais modifié le Makefile par rapport au 
Makefile de la version 7.5, donc forcément, le patch ne peut plus 
s'appliquer

  2) Tu utilises un système de fichier FAT qui l'empêche de faire 
certaines opérations, ou alors tu n'as pas les droits suffisants sur le 
fichier.

> Par contre, au niveau utilisateur, je n'ai pas accès aux fonctions (lors 
> de l'édition de liens) :
> - random()
> - sos_ksema_init()
> - sos_ksema_up()
> - sos_ksema_down()
> - free()

  - random() n'est disponible qu'en espace noyau. Si tu le veux en 
espace user, il faut l'implémenter dans userland/libc.c ;

  - Il n'y a pas d'implémentation des sémaphores en userland pour le 
moment ;

  - free() n'est pas implémenté, car comme tu le verras dans la fonction 
malloc() (fichier userland/libc.c), la méthode d'allocation utilisée ne 
permet pas la libération ;

> Pour les fonctions sos_ksema_xxx(), je ne suis pas étonné mais, 
> j'aimerai obtenir un équivalent pour le niveau utilisateur.

Ce n'est pas disponible à l'heure actuelle, et ce n'est pas dans 
l'article 8, et ne sera pas non plus dans l'article 9, sauf si tu 
l'ajoutes à ta contribution.

Bonne journée,

Thomas
-- 
Thomas Petazzoni
thomas.petazzoni at enix.org


Plus d'informations sur la liste de diffusion Sos