www.mikrocontroller.net

Forum: Compiler & IDEs gcc4.0.2 linux


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ich habe versucht, gcc4.0.2 für den AVR unter Linux zu kompilieren,
gemäss der Anleitung von:
http://www.linuxfocus.org/Deutsch/November2004/art...
../configure --target=avr --prefix=/usr/local/avr --disable-nls
make


Nun erscheinen aber die folgende Fehlermeldung:

../../gcc/config/avr/libgcc.S: Assembler messages:
../../gcc/config/avr/libgcc.S:72: Error: suffix or operands invalid for
`clr'
../../gcc/config/avr/libgcc.S:72: Error: no such instruction: `clear
result'
../../gcc/config/avr/libgcc.S:74: Error: no such instruction: `sbrc
r24,0'
../../gcc/config/avr/libgcc.S:75: Error: too many memory references for
`add'
../../gcc/config/avr/libgcc.S:76: Error: too many memory references for
`add'
../../gcc/config/avr/libgcc.S:76: Error: no such instruction: `shift
multiplicand'
../../gcc/config/avr/libgcc.S:77: Error: no such instruction: `breq
__mulqi3_exit'
../../gcc/config/avr/libgcc.S:77: Error: no such instruction: `while
multiplicand!=0'
../../gcc/config/avr/libgcc.S:78: Error: no such instruction: `lsr
r24'
../../gcc/config/avr/libgcc.S:79: Error: no such instruction: `brne
__mulqi3_loop'
../../gcc/config/avr/libgcc.S:79: Error: no such instruction: `exit if
multiplier=0'
../../gcc/config/avr/libgcc.S:81: Error: too many memory references for
`mov'
../../gcc/config/avr/libgcc.S:81: Error: no such instruction: `result
to return register'
make[2]: *** [libgcc/./_mulqi3.o] Fehler 1
make[2]: Leaving directory `/usr/local/kill/gcc-4.0.2/obj-avr/gcc'
make[1]: *** [stmp-multilib] Fehler 2
make[1]: Leaving directory `/usr/local/kill/gcc-4.0.2/obj-avr/gcc'
make: *** [all-gcc] Fehler 2
root@PCAMD:/usr/local/kill/gcc-4.0.2/obj-avr#

Hat jemand eine Idee, was ich falsch mache?

Danke, Gruss Thomas

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klingt mir, als würde er die zugehörigen avr-binutils nicht finden und
daher den Assembler des Wirtssystems (as statt avr-as) benutzen.  Hast
du die biutils mit dem gleichen Präfix konfiguriert?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg

Ich denke der Fehler war bei den Binutuls und beim Pfad... wer lesen
und tippen kann, hat Vorteile im Leben...

Ich mache mal weiter, sonst melde ich mich wieder.

Danke, Gruss Thomas

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

soweit sollte alles geklappt haben, nur die avr-libc-1.4.0 kann ich
nicht installieren, das doconf und domake ist nicht vorhanden...

Sollten das Scripte in dem Verzeichnis sein?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibb's nich mehr...

Das waren Krücken, um den Multilib-Kram (avr2 bis avr5) mit dem alten
autoconf/automake auf die Reihe zu bekommen.  Mittlerweile kannst du
das alles ganz normal mit ./configure und make behandeln.  configure
braucht noch zwei Argumente (außer den von dir gewünschten wie
wahrscheinlich --prefix), aber das sagt es dir dann schon.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, ich habe noch einmal von vorne angefangen, damit ich beim nächsten
mal noch weiss, was ich gemacht habe. Nun kommt beim kompilieren des
gcc folgender Fehler:

checking for ANSI C header files... no
checking for sys/types.h... no
checking for sys/stat.h... no
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... no
checking stdio.h usability... no
checking stdio.h presence... no
checking for stdio.h... no
configure: error: Can't find stdio.h.
You must have a usable C system for the target already installed, at
least
including headers and, preferably, the library, before you can
configure
the Objective C runtime system.  If necessary, install gcc now with
`LANGUAGES=c', then the target library, then build with
`LANGUAGES=objc'.
make: *** [configure-target-libobjc] Fehler 1
root@PCAMD:/usr/local/kill/gcc-4.0.2/obj-avr#

Ich habe Knoppix 4.0 installiert und der gcc ist vorhanden und
funktioniert auch, die gesuchte Datei stdio.h ist in /usr/include
vorhanden. Was mache ich wieder falsch?
beim configure habe ich noch --libdir=/usr/include eingefügt, ohne
Erfolg.

Ich fühle mich langsam so: http://nichtlustig.de/comics/full/040816.jpg

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nu, steht doch da. ;-)

Du versuchst, Objective C zu compilieren, dafür brauchst du eine
stdio-Bibliothek des Targets, also für den AVR.  Ich denke aber,
ObjC willst du eigentlich gar nicht...

Die einfachste Methode, das nicht mit zu konfigurieren ist, dass man
sich nur die notwendigen Teile vom GCC runterlädt (core und g++).  Da
du aber offenbar das volle Archiv hast, musst du bei make angeben,
welche Sprachmodule du compilieren lassen möchtest:

make LANGUAGES="c c++"

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmmmmmm...
Ich werde das heute noch testen, dann melde ich mich wieder. Ich habe
mich schon gefragt, ob das überhaupt schon jemand zum laufen gebracht
hat.

1'000 Dank, Gruss Thomas

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Klappt immer noch nicht, es kommt immer noch die selbe Meldung.
Vieleicht verstehe ich die Meldung ja nicht richtig, aber
"You must have a usable C system for the target already installed, at
least"
bedeutet doch, dass ich einen C Compiler für das Zielsystem benötige,
oder nicht? Aber den will ich ja jetzt kompilieren...

Hilfe?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, es bedeutet, dass er eine C-Bibliothek für das Zielsystem
haben musst.  Da diese aber natürlich erstmal einen C-Compiler
braucht, hast du ein Henne-und-Ei-Problem.

Du musst es irgendwie schaffen, nur C (oder C und C++) zu
konfigurieren.  Vielleicht ist das ja beim GCC 4.x jetzt eine
configure-Option?

Ansonsten: nimm dir nur gcc-core statt des vollen Sources, der
kann dann nur einen C-Compiler bauen.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, ich habe den gcc-core herunter geladen und siehe da: Es klappt!

Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke, Danke,
Danke, Danke, Danke, Danke, Danke, Danke, Danke!!!!!

:o)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.