NÉV¶
genksyms - szimbólum verzió információt generál
ÁTTEKINTÉS¶
genksyms [ -wq ] [ -dD ] [ -V ]
-k verzió [ -p string ]
[ output könyvtár ]
LEÍRÁS¶
A
genksyms a szabványos bemenetről olvassa a
gcc -E
source.c kimenetét és egy verzió információt
tartalmazó fájlt hoz létre.
A
-k opcióval jelzett formátumtól függően a
kimenet vagy egy .ver fájlba kerül a megadott könyvtárban,
vagy a szabványos kimenetre.
A
genksyms normális esetben explicit szimbólumtábla
definíciót keres a forrásfájlban. Minden
typedef,
struct, union és
enum definíció és
deklaráció mentésre kerül egy későbbi
kibővítésre. Továbbá minden globális
szimbólum is mentésre kerül mutatókkal együtt, ami
egy teljes kibővítést tesz lehetővé később.
Amikor szimbólumtáblát talál a forrásban, a
szimbólumot kibővíti a teljes definíciójára,
ahol minden struct, union, enum és typedef az alapvető részeire
lesz lebontva rekurzívan. Ez a végső string lesz a bemenete egy
CRC algoritmusnak, ami egy egyész számot ad eredményül,
és ami abban a pillanatban megváltozik, mihelyt a szimbólumba
bevont definíciók bármelyike megváltozik.
A verzió információ a kernelben rendszerint így néz ki:
symbol_R12345678, ahol 12345678 a CRC hexadecimális
reprezentációja.
OPCIÓK¶
- -w
- Figyelmeztetéseket ír ki fel nem ismert szintaxis
és deklarált de nem definiált struktúrákból
eredően. Ezek a figyelmeztetések alapértelmezésben nem
jelennek meg.
- -q
- Elcsendesíti a figyeleemztetéseket, vagyis
megfordítja a -w opciót.
- -D
- A kibővített szimbólumdefiníciókat
a szabványos hibakimenetre írja. Csak hibakeresésre
használt.
- -d
- Hibakeresési információkat ír ki; az
opció ismétlése növeli az kiírt
információmennyiséget. Az 1. szint moderált
információt ír ki a műveletekről; a 2. szint
engedélyezi a parser működésének
nyomkövetését; a 3. szint engedélyezi a lexikus
analízis kimenetet.
- -k verzió
- Kiválasztja a kernel verzióját, amely
számára kimenetet generál. Ennek az opciónak
elhagyása 2.1.0-nál kisebb verziót feltételez. A
2.1.18 alatti verziók az 1-es ellenőrzőösszeg
verziót használják és a kimenetet a parancssorban
megadott könyvtárban hozzák létre. 2.1.18 és
afölötti verziók a 2-es ellenőrzőösszeg
verziót használják és a kimenetet a szabványos
kimenetre írják.
- -p string
- Minden szimbólumban a megadott stringet a CRC elé
másolja. Ezt az opciót pl. SMP kernelek esetén
használják, ahol is a modulok nem kompatíbilisek az adat
típusok által leírt szint alatt. Ezt elsősorban a
modul kódjában kifejtett inline függvények
kifejtése okozza.
LÁSD MÉG¶
insmod(8),
modprobe(8)
TÖRTÉNELEM¶
Ez a verzió koncepció sok emberrel történt
megbeszélések eredménye, nem kis részben a
KERNEL-channelen.
A genksyms programot 1994-ben írta Bjorn Ekwall <bj0rn@blox.se>
főleg Jacques Gelinas <jack@solucorp.ca> és Jeremy
Fitzhardinge <jeremy@suite.sw.oz.au> ötletei alapján.
1996-ban Richard Henderson írta át, hogy egy jobb parsert és
lexikai elemzőt használjon.
MAGYAR FORDÍTÁS¶
Böszörményi Zoltán <zboszor@mail.externet.hu>