Cross Compiler aufhängen bei "checking for gnum4..."



  • Hey Leute!
    Ich benötige einen Cross-Compiler für ein Ubuntu 32bit target, da ich auf einem Win7 64bit Rechner programmieren muss.
    Hierfür habe ich Cygwin installiert und vorgehabt den Cross-Compiler mithilfe von dem Crosstool-0.43 ( http://kegel.com/crosstool/ ) zu erstellen.
    In der Cygwin Konsole führe ich nach Anleitung die von crosstools zur verfügung gestellte "demo-i686.sh" aus, um den compiler erstellen zu lassen.
    Dass man beim downloaden der benötigten Files ein wenig nachhelfen muss, ist verständlich - crosstools ist ja auch von 2007/8.
    Leider hängt sich die Cygwin Konsole aus mir unerklärlichen Gründen beim erstellen der Cross-Compiler immer an der gleichen Stelle bei "checking for gnum4..." (der Konsolen-Text.) auf (ist ersichtlich, wenn man ganz nach unten scrollt).

    Weiß jemand vielleicht ein für Win7 64 geeignetes Cross Compiler Tool, das vielleicht sogar up2date ist, oder vielleicht, wie man das aufhängen verhindern kann?

    Beste Grüße und Danke schon im Vor raus,
    Deathly Assassin



  • Ich probiere gerade Crosstool-NG aus und hoffe, dass das mein Problem löst. Das ist zwar eigentlich für Linux gedacht, aber es scheint mittels Cygwin auch auf Windows zu funktionieren.
    Da der Host des Cross-Compilers nun "i686-pc-cygwin" ist, werde ich noch sehen müssen, wie ich das ganze dann in meiner IDE (eclipse) einrichte... 🙂



  • auch Crosstool-NG hängt sich auf. Allerdings beim installieren von GMP:

    [INFO ]  Installing GMP
    [EXTRA]    Configuring GMP
    [CFG  ]    checking build system type... i686-build_pc-cygwin
    [CFG  ]    checking host system type... i686-build_pc-cygwin
    [CFG  ]    checking for a BSD-compatible install... /home/User/crosstool/.build/tools/bin/install -c
    [CFG  ]    checking whether build environment is sane... yes
    [CFG  ]    checking for gawk... gawk
    [CFG  ]    checking whether make sets $(MAKE)... yes
    [CFG  ]    checking whether to enable maintainer-specific portions of Makefiles... no
    [CFG  ]    checking ABI=32
    [CFG  ]    checking compiler gcc  -pipe -fexceptions ... yes
    [CFG  ]    checking compiler gcc  -pipe -fexceptions has sizeof(long)==4... yes
    [CFG  ]    checking for i686-build_pc-cygwin-gcc... gcc
    [CFG  ]    checking for C compiler default output file name... a.exe
    [CFG  ]    checking whether the C compiler works... yes
    [CFG  ]    checking whether we are cross compiling... no
    [CFG  ]    checking for suffix of executables... .exe
    [CFG  ]    checking for suffix of object files... o
    [CFG  ]    checking whether we are using the GNU C compiler... yes
    [CFG  ]    checking whether gcc accepts -g... yes
    [CFG  ]    checking for gcc option to accept ISO C89... none needed
    [CFG  ]    checking for gcc option to accept ISO C99... -std=gnu99
    [CFG  ]    checking for gcc -std=gnu99 option to accept ISO Standard C... (cached) -std=gnu99
    [CFG  ]    checking how to run the C preprocessor... gcc -std=gnu99 -E
    [CFG  ]    checking build system compiler gcc -std=gnu99... yes
    [CFG  ]    checking for build system preprocessor... gcc -std=gnu99 -E
    [CFG  ]    checking for build system executable suffix... .exe
    [CFG  ]    checking whether build system compiler is ANSI... yes
    [CFG  ]    checking for build system compiler math library... -lm
    [CFG  ]    checking for i686-build_pc-cygwin-g++... i686-build_pc-cygwin-g++
    [CFG  ]    checking whether we are using the GNU C++ compiler... yes
    [CFG  ]    checking whether i686-build_pc-cygwin-g++ accepts -g... yes
    [CFG  ]    checking C++ compiler i686-build_pc-cygwin-g++   -pipe -fexceptions... yes
    [CFG  ]    checking how to run the C++ preprocessor... i686-build_pc-cygwin-g++ -E
    [CFG  ]    checking for grep that handles long lines and -e... /home/User/crosstool/.build/tools/bin/grep
    [CFG  ]    checking for egrep... /home/User/crosstool/.build/tools/bin/grep -E
    [CFG  ]    using ABI="32"
    [CFG  ]          CC="gcc -std=gnu99"
    [CFG  ]          CFLAGS=" -pipe -fexceptions"
    [CFG  ]          CPPFLAGS=""
    [CFG  ]          CXX="i686-build_pc-cygwin-g++"
    [CFG  ]          CXXFLAGS=" -pipe -fexceptions"
    [CFG  ]          MPN_PATH=" x86/p6 x86 generic"
    [CFG  ]    checking for function prototypes... yes
    [CFG  ]    checking for ANSI C header files... yes
    [CFG  ]    checking for sys/types.h... yes
    [CFG  ]    checking for sys/stat.h... yes
    [CFG  ]    checking for stdlib.h... yes
    [CFG  ]    checking for string.h... yes
    [CFG  ]    checking for memory.h... yes
    [CFG  ]    checking for strings.h... yes
    [CFG  ]    checking for inttypes.h... yes
    [CFG  ]    checking for stdint.h... yes
    [CFG  ]    checking for unistd.h... yes
    [CFG  ]    checking for string.h... (cached) yes
    [CFG  ]    checking whether assembler supports --noexecstack option... no
    [CFG  ]    checking for i686-build_pc-cygwin-ar... i686-build_pc-cygwin-ar
    [CFG  ]    checking for BSD-compatible nm... /usr/bin/nm -B
    

    -> ab hier tut sich auch dort nichts mehr... Weiß wer Rat?



  • Hahaha! Habe durch Zufall in der Konsole als sich das ganze mal wieder beim "checking" aufgehängt hat strg+z gedrückt, was das Programm in der Konsole angehalten hat. Kurz Google rausgeholt und das Programm mit fg ( siehe http://go2linux.garron.me/ctrl-z-stop-restart-linux-jobs ) weiterlaufen lassen und aufeinmal ging es vorran!!!!



  • Diese Erkenntnis hat mich zwar etwas weitergebracht, aber noch leider nicht zum Ziel. Denn nun hängt sich die Konsole an einer anderen Stelle auf - und diesmal hilft Strg+z und "fg"/"bg" nicht.
    Der Punkt, bei dem ich probleme habe ist die Installation von GMP. Es werden hier zahlreiche Dateien in u.a. folgenden Ordnern erst compiled und gelinked:

    devel
    mpbsd
    mpf  
    mpn  
    mpq  
    mpz  
    rand 
    misc 
    cxx
    

    Das gelinkte Entergebnis kommt in einen Unterordner, der sich ".libs" nennt(z.B. ".../mpbsd/.libs").
    Nachdem im "cxx" Ordner alle Dateien compiled wurden, wird nun mit mkdir .libs wie bei allen anderen zuvor auch der Unterordner erstellt, um dort abschließend *hinein-zu-linken*. Nach der Ausgabe

    [ALL  ]    mkdir .libs
    

    welche signalisiert, dass der Ordner erstellt wurde passiert aber nichts mehr -> Die Konsole hat sich wieder ausgehängt und die Installation von GMP ist somit gescheitert. (Es hätte nun das linken, wie bei vorrangegangenen folgen sollen. Das sieht in etwa so aus:

    [ALL  ]    mkdir .libs
    [ALL  ]    i686-build_pc-cygwin-ar cq .libs/libscanf.a  doscan.o fscanf.o fscanffuns.o scanf.o sscanf.o sscanffuns.o vfscanf.o vscanf.o vsscanf.o
    [ALL  ]    i686-build_pc-cygwin-ranlib .libs/libscanf.a
    [ALL  ]    creating libscanf.la
    [ALL  ]    (cd .libs && rm -f libscanf.la && ln -s ../libscanf.la libscanf.la)
    

    Hat wer von euch eine Idee, woran das liegen könnte? Bisher habe ich diverse unterschiedliche Einstellungen (auch die Sample Einstellungen) und unterschiedliche Versionen ausprobiert - ohne Erfolg.
    Bin für alles, was ihr zur Behebung dieses Problems beisteuern könnt super dankbar - sich mehrere Tage nur mit dem Erstellen eines Cross-Compilers rumzuärgern, obwohl man vermeindlich tools hat, die einem das ganze einfacher machen ist super ärgerlich 😕



  • Da es sich solangsam vom Aufwand her echt nicht mehr gelohnt hat und weder ich noch einer aus dem Forum Rat wusste, habe ich dann einfach n alten PC rausgekramt und Ubuntu raufgespielt.
    Da Crosstool-NG ja in erster Linie für Linux gemacht ist, habe ich dann nach einigen Kleinigkeiten nun endlich meinen Crosscompiler erstellen können - wenn auch statt eines Win7 Hosts nun mit einem Ubuntu Host.

    Wenn im Nachhinein doch noch jemand weiß, wie es unter Cygwin geklappt hätte - nur zu. Aber ansonsten seh ich das Thema jetzt als abgeschlossen an 🙂

    Aller beste Grüße,
    Deathly Assassin


Log in to reply