GENKSYMS(8)

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>