pihhan
Member
Registrován: 12.02.2003
Příspěvků: 493
|
Problemy s GCC a kompilaci s jinymi knihovnami |
Příspěvek č. 1 |
Potreboval bych poradit. Mam jeden RH 7.2, ktery pouzivam jako pracovni stanici. Potreboval bych poradit, co mam udelat, pokud chci zkompilovat programy pro jiny pocitac a jine knihovny.
Presneji:
Muj pokusny server jsem udelal z pygmy linuxu, male distribuce. Protoze mam HDD pouhych 45 MB, tak jsem promazal vetsinu uzivatelskych programu, protoze je asi potrebovat nebudu. Na uzivatelskou praci mam prece lepsi pocitac. Problem je v tom, ze chci mit moznost pridat si cokoliv na tento pocitac ze drojaku, tedy zkompilovat. Jelikoz na server gcc fakt nechci davat, jevi se mi jako lepsi moznost kompilovat z RH. V RH 7.2 maji dokonce pripravenu sekci pro egcs, ktera je schopna a nastavena pro kompilaci programu pro glibc 2.1.3-knihovna pygmyho. RH sam pouziva RH 2.2, takze normalni program zkompilovany na nem pustim jenom nekdy, vetsinou pokud nepouziju resolver nebo nejakou slozitejsi funkci. Pak mi to pojede. Ale to je vicemene o nahode, nic pro me. kdyz dam misto CC=gcc CC=egcs -b i386-glibc21-linux, tak mi to udela pro glibc 2.1.
Ma to ovsem 2 hacky:
1 ) Pygmy ma k dispozici vice knihoven, nez tam ma nastavene RH. Takze pokud program pouziva nektere funkce, RH mu je neprikompiluje dynamicky (.so), ale prida je do binarky. Tim jsou binarky docela velke. Je mozne nejak upravit profil /usr/lib/gcc-lib/egcs.../i386-glibc21-linux, aby se tam daly pridat presne ty knihovny, co ma pygmy? Bez toho, aniz bych k nim mel nejake vyvojarske dodatecne soubory (mam jenom utility z RH, ktere snad pouzit muzu, a knihovny z pygmyho z /lib a /usr/lib) Chtel bych pridat predevsim libz a libssl, aby se to linkovalo dynamicky. Zkousel jsem proste zkopirovat cely profil a pridat do knihoven ty pygmyho knihovny. Sice to nehlasilo zadnou chybu, ale vysledna binarka jela pouze na RH, protoze chtela glibc2.2. Takze tam neco nevyslo... Jde jen tak vzit nekde knihovny a prekladat pro ne programy, nebo si musim prelozit cilove knihovny samotne a teprve ty preplacnout do serveru misto pygmyho knihoven, a pro ty potom kompilovat?
2 ) Zkompiloval jsem bind 9, uspesne byl slinkovan pouze s glibc2.1, takze na pygmy to nehlasi chybejici knihovny. Problem je ten, ze na RH tahle binarka jede a na pygmy pri named --help vypise help, ale kdyz ho normalne pustim, tak hodi Segmentation fault. Pritom vsechny ostatni programy kompilovane timto postupem tam jedou. (qmail, jabberd 1.4.2, bnetd, samba) Taky jsem zjistil, ze pygmy ma nejaky divny inetd, protoze pouzije pouze prvni zaznam a ostatni nebere v uvahu. Protoze ma server 16 MB, tak tam chci mit vetsinu sluzeb spoustenou az na pozadani, je pouze muj osobni, takze nejake pretizeni nehrozi. Pokud zrovna s danou sluzbou nebudu delat, tak chci aby udelala misto ostatnim - napr. samba. Problem by mohl byt taky v tom, ze jsem to tam jenom rucne nakopiroval, protoze tam nemam ani make, takze instalaci binarek si delam rucne. Potrebuje BIND 9 (named) jeste nejake jine binarky ke spravnemu chodu nez named? Mam malo mista na disku a binarky jsou kvuli knihovnam docela velky, takze setrim, kde se da. Bind je docela rozezrany. Uz binarka mi zabira 1.4 MB. Je to asi kvuli internimu SSL. To souvisi s bodem 1), neni slinkovany s libssl :(
Doufam, ze aspon chapete, co jsem se chtel vubec zeptat Nechci radu typu dej si tam Debian nebo neco jine distro. Chci si tam pridavat sam programy, at je to co je to.
|