Chyba gcc - Not enough room for program headers

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Červen 10 13:56:42 CEST 2001


On Fri, 8 Jun 2001, Zbynek Vyskovsky wrote:

> __attribute__((section("ex_text"))) virtual void neco(neco);

Strkat metody do jinych sekci je dost drsne. Mozna je v prvni rade na
miste zvazit, zda mate vubec neco takoveho zapotrebi. (BTW: rekl bych, ze
obvyklejsi je psat __atribute__ za deklaraci, ale asi na tom nezalezi.)

> mi linker pri vytvareni sdilene knihovny zacal hlasit nasledujici chybu:
> /usr/bin/ld: p3shared.so: Not enough room for program headers (allocated 3, 
> need 4)
> /usr/bin/ld: final link failed: Bad value
> collect2: ld returned 1 exit status
> 
> Po pridani dalsi (globalni, ale asi je to jedno) funkce uz projde bez 
> problemu. Je to chyba gcc nebo moje a jak ji "cisteji" odstranit?

To bude spis problem s ld (cili s binutils). Dokonce to hodne vypada jako
nejaka interni chyba. Ovsem chybu v gcc nebo mozna as take nelze vyloucit.

Cisty postup, jak problem odstranit, je opravit ld resp. gcc. :)

V prvni rade je potreba najit co nejjednodussi priklad, co to
vyvolava. Pak zkusit jinou verzi resp. jine kombinace verzi gcc/as/ld
(prinejmensim aspon zkusit ty nejnovejsi vs. ty pouzivane). Podivat se do
zdrojaku ld, za jakych okolnosti vlastne ta chyba nastava atd. Nebo aspon
poslat bugreport.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux