avr-gcc mit mpc und mpfr support?

Persönliche Seite #2110256
Lesenswert?

Diese Pakete werden zum Erzeugen von GCC benötigt, siehe

http://gcc.gnu.org/install/prerequisites.html

Beispiel: In einer Quelle wie
1
float x = 1.0f + 2.0f;
muss für x ein Initializer berechnet werden; diese Berechnung kann nur 
auf dem Host geschehen. Um auf dem Host unabhängig von der vorliegenden 
float/double-Harware zu sein, wird das alles in Software nachgebildet.
Gast #2110361
Lesenswert?

gut zu wissen, Danke.
Wenn der Host, also der Arbeitsrechner auf dem AVR Quellen compiliert
werden, Hardwareunterstützung für solche compile-time Berechnungen
besitzt, wäre dieser Schritt (mpc, mpfr) nicht notwendig?
Die meisten Seiten die auf die Toolchain-Installation eingehen,
bauen nur binutils, gcc und libc.

Noch eine kurze Frage: wie geht man am besten beim Bauen vor.
Holt man sich besser grundsätzlich die neuesten Quellen oder
Quellen aus der selben Zeit? Beispielsweise gcc3.4.6 mit binutils 2.18
und libc 1.6.8? Gibt es stabile Kombinationen und nicht empfehlenswerte?
Persönliche Seite #2110406
Lesenswert?

Martin schrieb:
> gut zu wissen, Danke.
> Wenn der Host, also der Arbeitsrechner auf dem AVR Quellen compiliert
> werden, Hardwareunterstützung für solche compile-time Berechnungen
> besitzt, wäre dieser Schritt (mpc, mpfr) nicht notwendig?

Nein, diese Pakete sind immer notwendig, unabhängig von den Fähigkeiten 
der Host/Build-Plattform. Abhängig sind sie lediglich von der 
GCC-Version. mpc ist AFAIK seit 4.5 erforderlich, gmp und mpfr auch für 
ältere 4-er Versionen.

Selbt wenn der Host double-Berechnungen nativ unterstützt, ist nicht 
sichergestellt, daß diese genauso geschehen wie Target-Code es machen 
würde.

Überigens ist es wie bei heise angegeben nicht notwendig, die Pakete 
gmp/mpfr/mpc ins GCC-Root-Directory zu kopieren. Ein Soft-Link ist 
völlig ausreichend und beim Build mehrerer Toolchain-Varianten 
Platzsparender.

> Die meisten Seiten die auf die Toolchain-Installation eingehen,
> bauen nur binutils, gcc und libc.

Für ältere GCC wie 3.x war das auch ausreichend.

> Noch eine kurze Frage: wie geht man am besten beim Bauen vor.
> Holt man sich besser grundsätzlich die neuesten Quellen oder
> Quellen aus der selben Zeit? Beispielsweise gcc3.4.6 mit binutils 2.18
> und libc 1.6.8? Gibt es stabile Kombinationen und nicht empfehlenswerte?

Bei avrfreaks.net gibt's ein paar sticky-threads, wo's um avr-Tools 
generierung und Build-Scripte geht, die auch automatisch Patches 
runterladen und anwenden. Für eingehendere Info, welche Versionen 
zusammenpassen/empfehlenswert sind, ist das dortige avr-gcc-Forum ein 
Anlaufpunkt, dito die Mainingliste avr-gcc-list von 
http://avr-libc.nongnu.org

Von avr-(gcc/binutils/libc) gibt es so viele 
Kombinationen/Releases/Distributionen/Patches; ich weiß nicht ob da noch 
irgendjemand ausser Eric oder Jörg durchblickt. Meine Interesse an 
avr-gcc geht in Richtung Entwicklung, nicht dessen Verwendung. Und da 
interessieren mich nur ungepatchte Versionen von avr-gcc.

In http://winavr.cvs.sourceforge.net/viewvc/winavr/ gibt es ein 
Verzeichnis "patches", wo man die Patches für unterschiedliche Versionen 
der Tools finden kann. Die Patches sind auch bei den 
WinAVR-Distributionen anbei. Die Patches sind jedoch nicht protierbar, 
d.h. ein Patch gegen 4.3.3 passt ziemlich sicher nicht auf 4.4.2. Zudem 
müssen die Patches in einer bestimmten Reihenfolge angewandt werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren