aMule Forum

Deutsch => aMule Hilfe => Topic started by: Schuttwegraeumer on March 17, 2008, 04:23:01 PM

Title: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on March 17, 2008, 04:23:01 PM
Wie übergibt man dem make Prozess die Zielplatform?
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on March 17, 2008, 05:58:06 PM
Hallo,

Füge dazu dem configure-Script die korrekte Platform hinzu, z.b. ./configure --host=i486-mingw32
Beachte, dass dein Compiler das unterstützen muss und du auch die nötigen Bibliotheken für die Zielplatform kompiliert benötigst.

mfg
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on March 17, 2008, 06:40:03 PM
Es soll schon das gleiche OS bleiben, also ich will auf meinem i686 für AMD64 kompilieren.
Ich habe hier ein Ubuntu i386 7.10 und gedacht war dass ich für ein Ubuntu 64 7.10 kompiliere.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on March 17, 2008, 08:35:24 PM
Das war ein Beispiel von einer mir bekannten Cross-Compiler-Umgebung. Ich kann dir leider weder dabei helfen eine funktionierende x86_64-Umgebung auf deinem Rechner aufzubauen noch dir den korrekten Wert für --host geben, da dieser von der Umgebung abhängt. Auf meinem Rechner ist das x86_64-unknown-linux-gnu, aber da nutze ich ein 64bit Betriebssystem.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on March 17, 2008, 09:01:20 PM
Ok, ich werde mich mal im Ubuntu forum umhorchen.
Danke für deine Hilfe.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 01:40:44 AM
Das war ein Beispiel von einer mir bekannten Cross-Compiler-Umgebung. Ich kann dir leider weder dabei helfen eine funktionierende x86_64-Umgebung auf deinem Rechner aufzubauen noch dir den korrekten Wert für --host geben, da dieser von der Umgebung abhängt. Auf meinem Rechner ist das x86_64-unknown-linux-gnu, aber da nutze ich ein 64bit Betriebssystem.

Genau der string steht auch in der config.guess drinnen.
Ich teste das mal.
Bei mir kommt gleich anfangs ein

Quote
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking build system type... i686-pc-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
Mal sehen ob das durchläuft.
Leider kann ich das dann nicht testen da mir ein 64 Bit System fehlt.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 25, 2008, 10:42:04 AM
Diese Warnung sollte kein Problem darstellen, die kam bei mir ebenfalls, wenn ich Cross-kompiliert habe. Wenn du einen Test brauchst, könnte ich es versuchen.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 11:07:31 AM
Gerne.
Ich habe mal mit dem gestrigen Source (von Hirnriss) ein 64Bit Build gebaut.
Ausser der Änderung von configure habe ich nichts geändert, wenn man mal von der Plattformbezeichnung in checkinstall absieht, die musste ich von i386 auf was anderes ändern, ist jedoch nur ein beliebiger String.

Hier das File:
http://share.gulli.com/files/939799598/amule_cvs-20080524-1_x86_64.deb.html

MD5:
Code: [Select]
1f71f9673abe73266c6a82a97f99b848  amule_CVS-20080524-1_x86_64.deb
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 25, 2008, 11:21:51 AM
Es tut mir Leid, ich konnte die Datei weder mit Firefox noch mit Opera herunterladen. :( Kannst du sie bitte woanders noch einmal hochladen?

Mir ist auch noch eingefallen, dass du auch ein 64-bit Betriebssystem unter qemu oder vmware installieren könntest um das Paket auf einem nicht-64-bit Rechner zu testen.

Nebenbei: deb-Dateien kann ich nur mit einiger Mühe öffnen, normale gepackte Dateien sind einfacher für mich.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 11:37:52 AM
Also ich bin enttäuscht von Gulli.

Ich habe es nochmal auf Rapidshare hochgeladen:

http://rapidshare.com/files/117446281/amule_CVS-20080524-1_x86_64.deb.html

MD5:

Code: [Select]
1f71f9673abe73266c6a82a97f99b848  amule_CVS-20080524-1_x86_64.deb

Ein .deb ist im Prinzip ein .tar.gz, man müsste es mit jedem Entpacker aufmachen können.
Mir geht es ja darum ob ich Pakete für x86_64 erstellen kann auf meinem i386 System.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 25, 2008, 12:00:40 PM
Das hat leider nicht funktioniert: (Dateien sind 32-bit und direkt nicht ausführbar.)
Quote
amule:         ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped
autostart-xas: POSIX shell script text executable
ed2k:          ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 12:02:40 PM
Hm, wie könnte man das lösen?
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 12:28:05 PM
*grübel*

 sollte es nicht vieleicht --target=xxx sein mit dem man festlegt für welche Hardware der Code erstellt wird?
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 02:41:36 PM
Ich habe es mal mit --target= versucht:

http://rapidshare.com/files/117478466/amule_CVS-20080525-1_x86_64.deb.html

MD5:

Code: [Select]
f9fad7e3ac7c9a05370c836378a33080  amule_CVS-20080525-1_x86_64.deb
Die Platform Einträge musste ich wieder umändern von i386 auf x86_64, bin also gespannt ob es geklappt hat.
Leider ist das File exakt genauso groß wie meines für 686.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 25, 2008, 03:13:55 PM
Hat nicht funktioniert. Wie baust du die Pakete?
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 03:38:09 PM
Ich baue die mit

Code: [Select]
tar -xvjf aMule-CVS-20080520.tar.bz2
cd amule-cvs
./configure --disable-debug --enable-optimize
make
sudo checkinstall --install=no
sudo make clean

Derzeit habe ich die configure Zeile auf

Code: [Select]
./configure --disable-debug --enable-optimize --target=x86_64-unknown-linux-gnu --enable-cross-compile
ausgebaut und die libc dev Pakete für AMD64 installiert.
Bisher kommt aber immer noch  die Meldung dass nicht crosscompiliert wird.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 04:43:56 PM
Also ich habe jetzt

Code: [Select]
./configure --disable-debug --enable-optimize --enable-cross-compile --host=i686 --build=x86_64-unknown-linux-gnuverwendet, es kommt auch tatsächlich die Meldung dass crosscompiliert wird, er bricht aber mit dieser Meldung ab:

Quote
checking for zlib >= 1.1.4... yes (version 1.2.3.3)
checking for File::Copy... ok
checking whether we need the GUI... no
checking for exception-handling... undeterminable
configure: WARNING:
   Cross-compilation detected, so exception handling cannot be tested.
   Note that broken exception handling in your compiler may lead to
   unexpected crashes.
checking for the --with-toolkit option... will be automatically detected
checking for the --with-wxshared option... will be automatically detected
checking for the --with-wxdebug option... will be automatically detected
checking for the --with-wxversion option... will be automatically detected
checking for wx-config... /usr/bin/wx-config
checking for wxWidgets version >= 2.8.0 (--unicode=yes)... no
configure: error:
    The requested wxWidgets build couldn't be found.
   
    The configuration you asked for aMule requires a wxWidgets
    build with the following settings:
        --unicode=yes
    but such build is not available.

    To see the wxWidgets builds available on this system, please use
    'wx-config --list' command. To use the default build, returned by
    'wx-config --selected-config', use the options with their 'auto'
    default values.

    If you still get this error, then check that 'wx-config' is
    in path, the directory where wxWidgets libraries are installed
    (returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH
    or equivalent variable and wxWidgets version is 2.8.0 or above.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 25, 2008, 07:36:28 PM
Du musst auch wx für x86_64 kompilieren und installieren. Das ist anfangs ein bisschen Arbeit, aber sobald man die Umgebung aufgesetzt hat, ist es kein Problem. :)
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 25, 2008, 08:44:48 PM
Wozu?
Ich will (und kann) das hier nicht als AMD64 Binary laufen lassen.
Ich will es nur so kompilieren dass es auf einem AMD64 System läuft.
Also muss nur das übersetzt werden was in das Paket reinkommt und sonst nix.
Das ist aber aufgabe des make Prozesses.Wozu muss ich da wx Binaries als AMD64 insallieren, der wird die doch nicht fertig gebaut nehmen und reinbauen?
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 26, 2008, 02:07:38 AM
Es linkt gegen diese Binaries, das heißt es muss auch wissen wogegen er verlinken kann, also die Binaries während des Kompilierens (genauer dem Linkens) zur Verfügung haben.

Um es bildhaft zu erklären (Ich hatte gerade ein etwas surreales "Abend"essen und mir ist danach): Du hast ein Baukastensystem von Ikea, nennen wir es Igor. Du willst nun eine komplette Schrankwand vom Typ Igor in Weiß/Blau konstruieren. Dabei verkaufst du aber nur einen Tei, weil der Rest bereits vorhanden istl, beispielsweise einen Büchersschrank. Da er aber später in die Schrankwand passen soll, musst du bereits beim Zusammenbauen wissen, wie er später eingebaut werden soll, oder er wird nicht passen. Deswegen passt du ihn beim Zusammenbauen an die anderen Teile an und kannst ihn dann angepasst weitergeben.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 26, 2008, 04:50:55 AM
Ok, wie müsste ich da vorgehen damit das normale Compilieren des Amule für i386 nicht beeinträchtig wir?
Bisher habe ich die WX Sachen nicht selber kompiliert weil es nicht notwendig ist und ich im ZWeifelsfalle immer die Pakete aus dem Repository verwende.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 26, 2008, 07:18:57 AM
Die Installation solcher Pakete (d.h. zumindest glibc, binutils, zlib, crypto und wx für aMule iirc) erfolgt dann meist nach /usr/Plattformname/... also z.B. /usr/i486-mingw32/ oder /usr/x86_64-unknown-linux-gnu/ mit der gleichen Verzeichnisstruktur wie /usr für das Hauptsystem, d.h. bin/, lib/, include/ usw.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 26, 2008, 08:33:38 PM
REicht es wx einfach so wie beschreiben für x86_64 zu übersetzen und es wird dann ins passende Verzeichnis kopiert?
Und muss ich damit rechnen dass wenn es endlich mit wx klappt dass das nächste Paket welches für aMule nötig ist via Fehlermeldung erscheint und brav auf 64 Bit übersetzt werden will?

Ich wollte doch nur einen aMule bauen für Ubuntu 8.04 AMD64 und nicht meine Maschine hier als Build Kiste vollstopfen.
Es wird mir langsam zu viel Aufwand für das bischen Nutzen.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 26, 2008, 08:40:15 PM
Ganz ohne geht es leider nicht, ich gehe von mindestens den oben in Klammern genannten Paketen aus.

Vielleicht ist ja distcc etwas für dich um den anderen Rechner zu entlasten?
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 26, 2008, 08:43:22 PM
Naja, ich habe hier nur diesen einen Rechner und der hat leider schon einen Bart.
Er kann nicht nur kein x86_64 sondern als er gebaut wurde gab es noch garkeine AMD64 Specs.  ;D
Kann man eine Buildmaschine als Live System aufsetzen, der REchner meines Bruders ist geringfügig schneller, der gehört aber halt nicht mir und ich will da nix draufkippen.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 26, 2008, 08:45:20 PM
Nachtrag:

Ich habe mir mal den Source gezogen für wxgtk.
Mal sehen ob ich es schaffe das paket aus x86_64 zu compilieren.

EDIT: Welche Pakete verwendet ihr denn eigentlich zum crosscompilieren?
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 26, 2008, 09:10:06 PM
Ich habe leider noch nie einen Cross-compiler für AMD64 gebaut, nur für Windows und Mac OS X. Für Windows (mingw) sind die oben genannten Pakete notwendig, Mac OS X ist noch um einiges komplizierter, wobei diese Seite (http://biolpc22.york.ac.uk/pub/linux-mac-cross/) mir sehr hilfreich war.

Das mit dem Live-System wäre möglich, aber um die Cross-Kompilier-Umgebung kommst du damit leider auch nicht herum.
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: Schuttwegraeumer on May 26, 2008, 09:18:48 PM
Die Pakete gibts ja auch eh für AMD64, kann ich die nicht irgendwie aus deren Repository "borgen"?
Title: Re: aMule auf i386 für AMD64 kompilieren?
Post by: wuischke on May 26, 2008, 09:29:51 PM
Möglich, nur leider habe ich damit leider keine Erfahrung. Bitte frage mal in einem (kompetenten) Forum für deine Distribution nach.