wie baut man sich einen avr-gcc?

Gast #3318506
Lesenswert?

Hallo zusammen,

ich würde gerne unter LinuxMint 14 den aktuellen avr-gcc verwenden 
(4.8.1).
Allerdings habe ich keine Binärpakete gefunden, weswegen ich mir den 
Compiler selber bauen muss/möchte.

Ich bin wie in der gcc-Doku beschrieben vorgegangen, aber leider auf 
Probleme gestoßen.

Die gcc-Quellen liegen unter ~/gcc-4.8.1.
Da man als objdir kein Unterverzeichnis des srcdirs verwenden soll hab 
ich mir den Ordner ~/avr-gcc erstellt.

In diesen wechsle ich und führe von dort aus:
1
~/gcc-4.8.1/configure --target=avr --disable-nls --enable-languages=c --disable-libssp
Das Skript läuft ohne Fehler durch, danach kann ich make ausführen.
1
make

Auch make läuft fehlerfrei durch.
Allerdings ist danach der Ordner ~/avr-gcc leer.
Stattdessen hab ich unter ~/ eine Menge an neuen Ordnern, darunter 
"usr", "avr", "gcc" und noch einige mit irgendwelchen Librarynamen.

Nur, wo genau finde ich denn mein avr-gcc Binary?
Mache ich
1
avr-gcc --version
 erscheint weiterhin die Ausgabe der 4.7.0, also diejenige die ich über 
die Paketverwaltung installiert habe.
Aber auch ein direktes Starten des neuen avr-gcc unter Angabe des 
vollständigen Pfades ist nicht möglich, da, wie gesagt, ich das Binary 
nirgends finden kann.

Kann mir da jemand weiterhelfen?
Hab ich einen Schritt übersehen?

Viele Grüße,
Masl
#3318563
Lesenswert?

Die Dateien wurden einfach eine Verzeichnisebene zu hoch ausgegeben. 
Wahrscheinlich steck das Binary unter ~/usr/bin. Das ist natürlich nicht 
im Pfad, das musst du direkt aufrufen oder das andere Paket 
deinstallieren und deinen Pfad anpassen.

Deine Toolchain besteht nicht nur aus dem Binary, sondern auch aus den 
ganzen binary utils, den Include-Dateien, dem Linkerskript und natürlich 
den Bibliotheken. Da kommt einiges zusammen.
Persönliche Seite #3318639
Lesenswert?

Masl schrieb:

> ~/gcc-4.8.1/configure --target=avr --disable-nls --enable-languages=c
> --disable-libssp

Auf jeden Fall würde ich den Compiler und die Binutils in einen 
nicht-Standard-Pfad installieren, zumindest solange das Prozeder nicht 
100% klar ist und funktioniert, ansonsten installierst du den (u.U. 
nicht korrekt funktionierenden) Compiler in Systemverzeichnisse.

Ergo: Auf jeden Fall --prefix setzen! etwa 
--prefix=/home/ich/install/avr-gcc-4.8.1.  Für Binutils verwendet man 
sinnigerweise das gleiche --prefix, dito für  AVR-Libc. Das Prefix kann 
dann in PATH eingetragen werden oder man ruft den Compiler per absolutem 
Pfad auf.

> Das Skript läuft ohne Fehler durch, danach kann ich make ausführen.

Nach configure ist im Object-Verzeichnis ein Makefile.  Configure-Daten 
und ob die richtigen Binutils verwendet werden sieht man im config.log

> Auch make läuft fehlerfrei durch.
> Allerdings ist danach der Ordner ~/avr-gcc leer.

Seltsam.

Seltsam. Sicher, daß
> Stattdessen hab ich unter ~/ eine Menge an neuen Ordnern, darunter
> "usr", "avr", "gcc" und noch einige mit irgendwelchen Librarynamen.

Noch seltsamer ist das "usr".

> Nur, wo genau finde ich denn mein avr-gcc Binary?

Ich würd alles löschen und dann mit --prefix nochmals versuchen.  Das 
Binary steht nach "make install" in $PREFIX/bin/avr-gcc.  Bei einem Pfad 
z.B. im eigenen Home-Verzeichnis sind auck keine root-Rechte zum 
Installieren notwendig.

Jörg Wunsch schrieb:
> Masl schrieb:
>> Da man als objdir kein Unterverzeichnis des srcdirs
>
> Unterverzeichnis geht, nur direkt im Toplevel nicht.

Laut GCC Doku wird auch von Unterverzeichnisse des Quellbaums als 
Build-Verzeichnis dringend abgeraten.
Gast #3318924
Lesenswert?

Meine Handnotizen vom letzten Wochenende:

---
cd gcc-4.8.1
mkdir build
cd build/
../configure --program-suffix=-4.8.1 --target=avr --with-gmp=/opt/local/ 
--disable-nls --disable-libssp --enable-languages=c,c++
make
make install
---

Danach war definitiv der neue gcc installiert... (Auf MacOS hat es noch 
ein paar Schritte mehr gebraucht, die fuer dich auf Linux nicht relevant 
sein duerften.)

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