amd64 architektúrán i386 -os fordítás

Fórumok

Biztos hogy lehetséges, de nem igazán találok az apadt agyammal megfelelő leírást, pedig nem lehet olyan nagy bonyolultságú feladat. Tudtok segíteni?

Hozzászólások

Ez akkor gondolom minden gcc hívásnál kell - értsd a linkelésnél is?

KÖSZÖNÖM!
Az opcióval rájöttem a legkézenfekvőbb megoldásra - gcc manual - nem tudom miért nem jutott ez előbb eszembe :( Párszor már keresgéltem itt, de olyan mennyiség az opció, hogy nagyon el tudok benne veszni.

* Én egy indián vagyok. Minden indián hazudik.

Na azért mégsem olyan egyszerű ez a dolog :(
Most épp a fordítottjával próbálkozom, azaz i386 platformon próbálom lefordítani a cuccot amd64 -re. A segítséggel ez egyszerű lett volna -m64. Persze fel kellett telepíteni a libc6-dev-amd64. Szépen megfér a libc6-dev(-i386) -al.
Viszont, használok egy olyan libraryt mint a liboop, na ezzel mit kellene tenni?

* Én egy indián vagyok. Minden indián hazudik.

Amit akartok azt cross-compile-nak hívják, és minden libből meg kell, hogy legyen a megfelelő verzió. A fontosabb libeket esetleg a disztribúciód szállítja, minden mást újra kell fordítani. Komolyabb programnál ez elég nagy szívás tud lenni...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Én Debian :)
Azt látom, hogy a dolog ment egészen addig, amíg a liboop linkelésére nem került a sor - abból nincs meg a megfelelő library. Látszik, hogy a libc6-dev-amd64 letöltésével egy i386 architektúrájú gépre, létrejött egy /lib64 és egy /usr/lib64 - a multiarchitektúra lapjai megvannak. A saját forrásaimat gond nélkül lefordítottam amd64 -hez.
Azt nem találom, hogy a többi library -t, hogy tudom letölteni (apt-get, aptitude) úgy, hogy azok a megfelelő helyre kerüljenek? Találtam valami leírást, ami eleve úgy kezdődik, hogy ez egy elavult, minden bizonnyal hibás eljárás (pl. az átalakítás után nem fog működni az update/safe-update opció az apt-get -el).
A gondom az idő hiánya és a lustaság. Letölteni a hiányolt libraryt az architektúrához nem gond, de hova bontsam ki? Szóval homály :( Muszály lesz kitalálnom, a közeljövőben arm -hoz kell környezetet létrehoznom, mert az eszközön nem hiszem, hogy lesz eláég hely és erőforrás ezekhez a műveletekhez. Ha tudtok valamit szóljatok.

* Én egy indián vagyok. Minden indián hazudik.

Most nem tudom hogy van, de én Gentoo-n játszottam ilyesmivel, méghozzá win-es programokat (GIMP és saját Qt-s cuccok) fordítottam.
Ott ugye minden forrásból van telepítve, de a rendszer annyira jó volt, hogy pont ugyanannyira volt nehéz a gtk win-es verzióját felrakni/fordítani, mint a simát.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Tudom, hogy ez amolyan skrupulus - rigolyás öreg vagyok (vagy inkább örge). Azért hogy lefordítsak egy programot egy komplett rendszert alárakni? És akkor nemsokára csinálhatok ilyen ARM guest.
Nem tetszik, bár biztos egyszerűbb.

* Én egy indián vagyok. Minden indián hazudik.

A Virtualbox bugos Windows 7-en és ha 64 bites guest-eket futtatsz magával rántja a host OS-t is. A hibajegyek alapján egyébként csak bizonyos Core i5/i7 és újabb AMD processzorokon és több mint 4GB host ram esetében jön elő a dolog,bár az újabb hibajegyekben már ebben sem biztosak, sőt abban sem, hogy csak Windows 7-el jelentkezik. :) A vicc az, hogy fél éve nem találják a hibát.

http://www.virtualbox.org/ticket/6166
http://www.virtualbox.org/ticket/8963
http://www.virtualbox.org/ticket/8202
http://www.virtualbox.org/ticket/8330

És van még pár tucat hibajegy hasonló témában. Mit mondjak elég siralmas.

Sokaktól halottam (olyanoktól is akinek adok a szavára), hogy a win7 stabil és jó. Lehet, de szerintem a winXP is stabil és jó - az általam ismert ms produkciók közül eddig a legjobb windows verzió. Szigorúan véve, valójában csak magához és a windows -hoz képest általában stabil. A jól telepített és átgondolt Linux -hoz képest, szerintem nem említhető egy napon. Tehát ha alap operációs rendszerben gondolkodok egy virtuális géppark felépítéséhez, akkor csakis valami pingvin.
A win7 már csak azért is gyanús, hiszen az erőforrás igénye képtelenül magas. Különösen, ha arról beszélünk, hogy le kellene fordítani egy konzolos programocskát. Persze, aki a virtualizációban él, az ezt fogja kézenfekvőnek találni, kitaposott, jól dokumentált útvonal. De valójában ez olyan mintha atomreaktort építenénk egy zsebtelep kiváltására.
Nem baj majd ha odajutok, hogy muszáj kitaposom a másik utat.

* Én egy indián vagyok. Minden indián hazudik.

Nem fugg ossze, hogy melyik milyen arch, csak a CPU es a virtualizacios sw tudja (ma mar gyk. minden CPU es virtualizacios SW tamogatja mindkettot). 32 bites host OS-l is ugyanugy lehet 64 bites guestet futtatni, mint 64 bites hoston 32 bites guestet.

Ellenben x86/x86_64-n nehez lesz ARM-t virtualizalni.

----------------
Lvl86 Troll

Visszatérve a cross compile problémára - erről szól eredetileg ez a topic.
Jellemző, mint kiderül létezik egy olyan, hogy apt-cross amivel letölteni és telepíteni lehet a különféle más architektúrához szánt csomagokat, egy bibi van, a Squeeze (mostani stable) még nincs kész :( ez az én formám.
Viszont találtam egy olyat, hogy dpkg-cross ami pont erről szólna, de egyenlőre kijelenti, hogy nincs feltelepítve a libc6-dev-cross - pedig van, másként objecteket sem tudtam volna forgatni.
Illetve nem világos, hogy az architektúra opcióban "-a" a cél vagy a host architektúrát kell beírni. Próbálkozott valaki ilyennel? Most mit, a cross dologhoz az old stable Lenny -t kell használni?

* Én egy indián vagyok. Minden indián hazudik.

En azt ajanlom, hogy egyelore inkabb 64 biten forgass 32 es 64 bites csomagokat - erre van tamogatott, stabil lehetoseg -, a 32 bites kornyezetet meg hagyd meg a 32 bites csomagok forditasara. A 64->32 irany konnyen atjarhato, a 32->64 irany sajnos annal kevesbe.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Hááát nem tudom.. én annó kinlódtam csomót a cross compilerekkel, igaz, ott sokminden más is eltért.

A lényeg, egyszer felbasztam az agyam és felraktam 2 linuxot ( suse, redhat ) + openbsd vmware -be és nfs -en bemountoltam. Ezután a make tette a dolgát.