Manpages

NOME

genksyms − genera l’informazione di versione di simbolo

SINTASSI

genksyms [ −wq ] [ −dD ] [ −V ] −k versione [ −p stringa ] [ directory di output ]

DESCRIZIONE

Genksyms legge (da standard input) l’output di gcc -E source.c e genera un file contenente l’informazione di versione.

Il formato di output dipende dall’opzione −k: l’output è scritto in un file .ver nella directory di output data sulla riga di comando o nello standard output.

Genksyms esamina normalmente il file sorgente per le definizioni di tavole di simboli esplicite. Tutte le definizioni e le dichiarazioni di typedef, struct, union e enum vengono salvate per una successiva espansione. Deve essere salvato anche ciascun simbolo globale, insieme con i puntatori che abiliteranno una successiva completa espansione.

Quando viene trovata nei sorgenti una tavola di simbolo, vengono espansi nella propria definizione completa, dove tutte le struct, union, enum e typedef devono essere suddivise ricorsivamente nelle loro parti base. Questa stringa finale deve essere usata come ingresso di un algoritmo CRC che elabora un intero derivante da tutti i cambiamenti di definizione per questo simbolo.

Normalmente l’informazione di versione nel kernel assomiglia a: symbol_R12345678, dove 12345678 è la rappresentazione esadecimale del CRC.

OPZIONI

−w

Abilita i "warnings" (attenzione) causati da sintassi non riconosciuta e strutture dichiarate ma non definite. Questi warnings sono normalmente soppressi.

−q

Disattiva i warnings: l’opzione ha effetto inverso rispetto a −w.

−D

Mostra le definizioni di simboli espanse su stderr. Usato esclusivamente a scopo diagnostico.

−d

Visualizza le informazioni diagnostiche; ripetendo questa opzione si incrementa il livello di verbosità: il livello diagnostico 1 genera informazioni moderate circa le azioni intraprese; il livello 2 abilita l’output del "parser"; il livello 3 abilita l’output dell’analisi lessicale.

−k versione

Seleziona la versione del kernel per la quale generare l’output. Se questa opzione è omessa, si suppone una versione inferiore a 2.1.0. Quelle precedenti a 2.1.18 usano la versione di "checksum" (somma di controllo) 1, e producono il loro output nella directory data sulla riga di comando. Le versioni 2.1.18 e successive usano la versione di "checksum" 2 e producono il loro output su stdout.

−p stringa

Precede la stringa data ai CRC generati per tutti i simboli. Questo è da usare, ad esempio, con i kernel SMP, in cui i moduli non sono compatibili con un livello inferiore a quello descritto dai tipi di dato, principalmente a causa dall’espansione di funzioni "inline" presenti nel codice stesso del modulo.

VEDERE ANCHE

insmod(1), modprobe(1)

STORIA

Il concetto di versione è il risultato di una discussione con molte persone avvenuta non sempre sul "KERNEL-channel".

L’utilità genksyms è stata creata nel 1994 da Bjorn Ekwall <bj0rn [AT] blox.se> ispirata principalmente da Jacques Gelinas <jack [AT] solucorp.ca> e Jeremy Fitzhardinge <jeremy [AT] suite.au>

È stata riscritta nel 1996 da Richard Henderson per usare dei veri lexer e parser..