Incorrectly built binary which accesses errno ...

Miroslav BENES mbenes na tenez.cz
Středa Leden 21 11:30:38 CET 2004


Přeji krásný den !

Na serveru s linuxem WhiteBox 3.0 (kernel 2.4.21-4.ELsmp, glibc-
2.3.2-95.3) se mi při spouštění binárek jisté aplikace objevuje
pravidelně toto sdělení :

"Incorrectly built binary which accesses errno or h_errno
directly Needs to be fixed."


Čím je způsobeno a co se s tím dá dělat ?


Google mi k tomu našel pár odkazů, ale nejsem z toho moc moudrý.
jestli jsem to správně pochopil, je teď definován objekt errno
jako makro (což podle normy lze), ale (starší) aplikace s touto
možnstí nepočítaly.

V jedné diskusi je příspěvek od Jakub Jelínka, kde doporučuje
před spouštění aplikace předřadit :

LD_ASSUME_KERNEL=2.2.5 <binárka>

Dotaz č.1 : Nakolik je zmíněná chyba závažná ? Když ji budu
ignorovat, co se může stát ? Může dojít ke zhroucení aplikace
nebo jádra ve chvíli kdy dojde k nějaké systémové chybě ?

Dotaz č.2 : Jak účinný je uvedený způsob "záplatování" - bude
možné ho používat i v budoucnu ? Jde mi o to, jestli můžu
očekávat problémy v případě budoucího přechodu na novější verzi
glibc (z logiky věci vyplývá, že je to dočasná berlička pro
zastaralé aplikace a že se tedy nemusí objevovat v nových
verzích glibc). Stejně tak by mě zajímalo, jaký vliv na tento
problém by měl přechod na kernel řady 2.6.
Rekompilace není bohužel mořná - od aplikace nejsou k dispozici
zdrojáky (mám jen binárky) :(

Dotaz č.3 : Jak se dá zařídit, aby tato "berlička" uspokojila
všechny binárky z aplikace ? U těch které spouštím je to
jednoduché - místo binárky budu spouštět skript do kterého tu
opravu napíšu. Ale ty binárky se pak můžou samovolně volat i
navzájem. Bude toto předřazení platné i pro takto spouštěné
další binárky ? Nebo se to dá ošetřit jinak ?


Díky za tipy.
--------------------------
Miroslav BENES
E-mail   : mbenes na tenez.cz
TENEZ Chotebor, a.s
--------------------------



Další informace o konferenci Linux