Linuxtrent: Re: kernel

  • From: <matteoianeselli@xxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxxxxxx
  • Date: Sun, 15 Apr 2001 19:59:47 +0200

Filippo Dal Bosco writes:
 > 

 > non ho capito: prima dici che include e kernel devono avere lo stesso numero
 > e poi che :

Ammetto che non mi son fatto capire granche`:

 - in /usr/src/linux/include devi avere la versione degli include con
   cui e` stata compilata la libreria del C (quasi sicuramente quelli
   del 2.2.18, visto che e` il kernel con cui SuSE vien di serie).

 - in /usr/src/linux-2.4.2 (o qualunque altra directory) devi avere
   sorgenti e include del 2.4.2 (la distinzione tra sorgenti e include
   e` fittizia - le distribuzioni lo fanno perche` cosi` uno si puo`
   tenere solo gli include senza anche N megabyte di altri sorgenti
   del kernel - ma in realta` sono due pezzi della stessa cosa che
   devono quindi incastrarsi alla perfezione).

Questo e` quello che andrebbe fatto per far le cose per bene.

Adesso non so dove gli rpm di SuSE installino kernel e include del
2.4.x, e non so se ci abbiano aggiunto patch o altra roba (puoi vedere
prima di installare con "rpm -qpl nomefile.rpm | less"). 

Peraltro, non credo che ci siano enormi problemi se in
/usr/src/linux/include hai quelli del 2.4.2 invece di quelli del
2.2.18 (le strutture fondamentali del kernel non cambiano spesso),
pero` tieni presente che se compili roba tu (specialmente quella a
basso livello), si possono presentare come malfunzionamenti dei
programmi [1]. No problem invece se usi cose precompilate.



[1] In breve: alcune strutture nella libreria del C dipendono da
    alcune strutture del kernel, le quali possono cambiare a seconda
    del kernel. Il problema si ha quando uno, compilando roba, si tira
    dentro (indirettamente) gli include del kernel nuovo, mentre la
    libreria del C quando e` stata compilata si e` tirata dentro gli
    include del kernel vecchio, per cui la struct tal_dei_tali nel
    binario della libreria del C (/lib/libc.so) non e` uguale alla
    struct tal_dei_tali secondo gli include che hai usato per
    compilare il programma, per cui c'e` un disallineamento. 

    E` una questione piuttosto tecnica, ma purtroppo e` cosi`.
-- 
Matteo Ianeselli  
matteoianeselli AT poboxes.com
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: