Autor Thema: Kann die Binutils nicht compeliren  (Gelesen 5582 mal)

fkrauthan

  • Beiträge: 19
    • Profil anzeigen
    • http://www.fkrauthan.de
Gespeichert
« am: 21. February 2007, 18:24 »
Ich will die binutils nach der anleitung von http://www.osdev.org/wiki/GCC_Cross-Compiler compeliren. das configure geht ja nur dan wirft der compiler volgende meldung aus obwolh ich mich komplet an jeden schritt des wikis halte. Ich benutze cygwin dafür.

make[1]: Entering directory `/cygdrive/c/programmieren/Eigene_Projekte/binutils-
2.9/libiberty'
echo "# !Automatically generated from ./functions.def"\
          "- DO NOT EDIT!" >needed2.awk
grep '^DEFVAR(' < ./functions.def \
         | sed -e '/DEFVAR/s|DEFVAR.\([^,]*\).*|/\1/ { printf "#ifndef NEED_\1\\
n#define NEED_\1\\n#endif\\n" }|' \
         >>needed2.awk
grep '^DEFFUNC(' < ./functions.def \
         | sed -e '/DEFFUNC/s|DEFFUNC.\([^,]*\).*|/\1/ { printf "#ifndef NEED_\1
\\n#define NEED_\1\\n#endif\\n" }|' \
         >>needed2.awk
gcc -c -g -O2 -I. -I./../include -DNEED_sys_siglist -DNEED_basename -DNEED_strsi
gnal ./dummy.c 2>/dev/null
make[1]: *** [dummy.o] Error 1
make[1]: Leaving directory `/cygdrive/c/programmieren/Eigene_Projekte/binutils-2
.9/libiberty'
make: *** [all-libiberty] Error 2

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 22. February 2007, 17:52 »
Welche Version von binutils versuchst du zu kompilieren, welche Version vom gcc hast du drauf?
Cygwin in sich ist relativ ungeeignet für Entwicklung (allerdings ist es nicht unmöglich); eventuell ist coLinux ein besserer Ansatz. (Ich habe beides drauf.) Ein Beispiel sind Dateinamen und deren Endungen - unter Linux gilt .s für Assembler-Sourcen und .S für assemblierte Assembler-Sourcen (oder andersrum, weiß ich nicht mehr so genau). Das heißt, dass beim Kompilieren die Originalquelltexte überschrieben werden, was natürlich auf Dauer nicht funktionieren kann.

Meine Idee wäre nur, den Pfadnamen möglichst nach /home zu verlagern (das liegt dann unter <LW>:\cygwin\home\username), um die Pfade nicht zu überstrapazieren (Cygwin erlaubt nur 8192 Zeichen pro Kommando, Linux 32768 und FreeBSD glaub ich 65536) und in Linux-konformen Pfaden zu arbeiten. Anschließend würde ich noch empfehlen, eine definitiv funktionierende Kombination aus gcc und binutils zu benutzen. Gerade diese beiden Pakete sind immer sehr hakelig.

Schließlich noch zwei Ideen:
(a) buildroot könnte dir helfen, aber ich weiß nicht, ob es unter Cygwin durchkompiliert. Das erzeugt dir zwar ein Linux-root, aber eine toolchain (gcc, binutils, ...) fällt mit ab.
(b) Bitte, bitte, bitte versuche auf die Rechtschreibung zu achten. Das liest sich ja furchtbar.

Gruß,
Svenska

bbl

  • Beiträge: 13
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 23. February 2007, 19:45 »
Binutils 2.9 ist ja schon 8 1/2 Jahre alt!!!
vielleicht gehts ja mit einer neueren Version

Poste bitte auch deine Configure und make Flags

Zu Cygwin
Mit Pfadlängen hatte ich bis jetzt keine Probleme - Dateinamen waren bis jetzt nur beim Linux Kernel ein Problem.
Mit Linux (auch in einer virtuellen Maschine) geht es ziemlich sicher besser (und einiges schneller - der Emulationsoverhead von cygwin ist ziemlich groß).


Cross Compiler von Linux auf mingw32 mit hostplatform  linux (Target=System, für die der fertige Compiler compiliert, Host=System, auf der Compiler läuft, Build=System,auf dem der Compiler erstellt wird)
hab ich geschafft zu compiliern.
Was du genau ausführen musst hängt von dem ab, was du eigentlich genau für binutils (und auch GCC?) willst.

Beschreibe bitte daher mal genauer was du machen willst, fkrauthan

fkrauthan

  • Beiträge: 19
    • Profil anzeigen
    • http://www.fkrauthan.de
Gespeichert
« Antwort #3 am: 24. February 2007, 20:07 »
Danke hat sich aber erledigt. Hab doch Jidders CrossCompiler zum laufen übereden können.

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 25. February 2007, 12:54 »
Jo, das hattest du ja schon vor längerem mal versucht. Mich würde interessieren woran es denn gelegen hat, und ob ich die Anleitung mal ergänzen muss.
Dieser Text wird unter jedem Beitrag angezeigt.

 

Einloggen