Stub
-=-=-=
DOS: n., A small annoying boot virus that causes random spontaneous
system crashes, usually just before saving a massive project. Easily
cured by UNIX. See also MS-DOS, IBM-DOS, DR-DOS.
(from David Vicker's .plan)
Výsledkem linkování není DOSový EXE sobor, jako v Borland C,
ale COFF objekt. K jeho suštění jde použít zavaděč GO32V2, nebo
k němu přidat stub. Stub je krátky 16ti bitový kód, který se postará
o správné zavedení 32 bitového objektu, načtení CWSPMI (pokud
to je třeba), přepnutí do protected modu a odstartování vlastního
programu. Tento stub se k programu přidává programem stubify. Navíc
má ale několik standardních voleb, které lze přenastavit programem
stubedit. Z Makefile to lze dělat pomocí parametrů z příkazové
řádky. Normálně jde ale použít jenom s jménem souboru a zadat
parametry interaktivně.
Lze nastavit velikost zásobníku (mimochodem u překladačů C a C++
- cc1 je někdy nutné tuto velikost zvětšit, pokud odmíta přeložit
nějaký složitější program).
Další parametr je velikost transfer bufferu. To je buffer
používaný pro volání dosových služeb (třeba když potřebujete uložit
něco do souboru, data se napřed zkopírují do tohoto bufferu a teprve
potom se volá DOS). U programů, které často vyměňují data s DOSem
je dobré tuto velikost zvětšit (pomůže to třeba u preprocesoru - cpp
na síti)
Base name of file to actualy run - pomocí tohoto parametru lze
vytvářet "symbolické linky". Pokud není nastaven na prázdný řetězec,
nezavede se program z toho samého souboru, ale z jiného. Pod UNIXem
je běžné, aby jeden program měl dvě jména. Pokud to potřebujete pod
DJGPP, jde program uložit do jednoho souboru a potom vytvořit druhý
soubor, který obsahuje pouze stub s nastaveným tímto flagem.
Value to pass as argv[0] - co se programu má předat jako jméno.
Pokud je prázdný řetězec, použije se jméno souboru.
Program to provide DPMI server - jaký program se má volat,
v případě, že DPMI server neni k dispozici. Standardně to je
CWSDPMI.
výheň