Volby kompilace u mod_PHP4

Jirka Kosina jikos na jikos.cz
Neděle Květen 26 15:37:01 CEST 2002


On Sun, 26 May 2002, Pavel Dobes wrote:

> Jirka Kosina <jikos na jikos.cz> wrote:
> > Kazde PHP o sobe prozradi jak bylo zkompilovano, kdyz zavolate funkci 
> > phpinfo()
> Diky!
> Apropo, neda se to nejak zgeneralizovat? Treba neco jako - mam zdrojaky,
> mam binarku a mam script configure. To predam jako parametry necemu
> dalsimu a ono mi to vyhodi volby konfigurace.

No, z pouhopouhe binarky asi skutecne ne. configure skripty z GNU 
autotools pracuji typicky tak, ze zkouseji prekladat kratoucke zdrojaky, a 
podle toho, jestli se kompilace provede ci nikoliv, usoudi neco o 
vlastnostech systemu, a typicky do config.h pridaji prislusny #define, a 
podle definovanosti tohoto makra jsou pak provadena rozhodnuti ve 
zdrojacich.

System, kterym by to slo, ale je opravdu hodne nechutny, ;) - chcete
zjistit, jestli bylo v dobe prekladu definovane makro FOO, ktere se
definuje pouze kdyz se configure skriptu preda parametry --bar. Pokud mate
stesti, nekde ve zdrojacich najdete konstrukci

#ifdef FOO
	/* nejaka akce */
#else
	/* jina akce */
#endif

zapamatujete si jmeno funkce, ve ktere se tento kod vyskytuje (je vhodne 
najit nejkratsi takovou funkci ;) ), pak pustite program uvnitr gdb, 
prislusnou funkci si disasemblujete, a podivate se, jaky kod z te #ifdef 
vetve se provadi. Pokud ten z #else, nebyl pri spousteni configure 
parametr --bar pouzit, v opacnem pripade byl.

;))

-- 
JiKos.




Další informace o konferenci Linux