10.9.07

Moje programátorské trápení

Deadline projektu už je podstatě za námi a projekt stále není. Částečně je chyba u kolegy, částečně i u velení - bylo mi řečeno, že na jejich systému vytvoří virtuální server pod Linuxem, den po termínu jsem se dozvěděl, že se nic takového nekonalo. Protože jsem podepisoval smlouvu o důvěrnosti, tak nebudu říkat, co přesně je ten projekt zač. Jen že tam využívám knihoven Boost a asio.
Projekt jsem napsal, vše šlapalo jak na drátku. Problém nastal při testování, konkrétně když jsem zkoušel kompilovat Boost na operačním systému OpenBSD 3.9. Je to už krapet starší verze, možná i to se na tom podepsalo... Boost tam prostě nešel zkompilovat, padlo to na Segmentation fault. Dlouho jsem přemýšlel, jak to vyřešit, pomrkával jsem po cross kompilaci (tzn. na svým Linuxu bych zkompiloval kompilátor a příslušný knihovny pro OpenBSD a v tom zkompiloval svůj projekt), ale ukázalo se to jako složité řešení, nedařilo se mi najít tu správnou kombinaci ARCH-VENDOR-OS-LIBC (co je špatně na i386-pc-openbsd-uclibc?).
Nakonec jsem se rozhodl pro další řešení. Stáhl jsem instalační soubory OpenBSD, pustil virtuální stroj vmware, v tom (s drobnými obtížemi se sítí) nainstaloval systém a začal to všechno instalovat včetně knihoven tam. Boost byl pokořen, podařilo se mi ho tam zkompilovat!
Objevila se však další chyba při instalaci knihovny asio. Ta padla při kompilaci při volání funkcí gethostbyname_r a dalších knihoven z glibc, což je GNU knihovna, která pod BSD není! Přitom na stránkách asia je napsáno, že projekt jde rozjet pod Mac OS X, což je *BSD systém. I na IRC kanálu #boost@freenode, kde se scházejí uživatelé i vývojáři Boostu a asia, se tomu divili.
Pustil jsem se tedy do editace zdrojových souborů asio knihovny, snažím se upravovat #ifdefy tam, kde jsou obsaženy #ifdefy pro Mac, snad to zabere.
Štve mě to, protože najednou mám kopec práce, do středy dopoledne mám mít ještě hotových 20 stran překladu, mě z toho hrábne! :-( Snad se to nějak podaří.

1 komentář:

m1c4a1 řekl(a)...

Objevil jsem blog vývojáře asio knihovny a tento článek. Jde přesně o můj problém. Můžu doufat, že se za rok něco spravilo.
Napsal jsem mu mail, snad odpoví... jinak už fakt nevím, jak to spravit.