Forum: Compiler & IDEs Wie sag ich's meinem Compiler (neue avrlibc)?


von Santiago (Gast)


Lesenswert?

Hallo,

die ständige Kopiererei der Firmware per USB-Stick von windoz zu tunix 
ging mir so langsam auf den Keks - deshalb wollte ich die 
Entwicklungsumgebung unter debian (etch) auf Vordermann bringen.

Die Grundinstallation ging fix - schließlich ist ja alles bei debian 
dabei.
Aber dann gings los.

Manche Projekte ließen sich nicht übersetzen, weil bei etch eine etwas 
betagtere avrlibc-Version dabei ist. Nun wollte ich nicht mein System 
verratzen, aber ein update der avrlibc hat mir schon in den Fingern 
gejukt :)
Dachte mir - sollte doch möglich sein ...

Also die Saucen runtergeladen, INSTALL überflogen und los. Hat auch brav 
einiges gebaut und installiert (nach /usr/local/... )

Wenn ich jetzt allerdings in den Projekten ein make aufrufe, hat sich 
nix geändert. Der liebe (?) gcc nimmt immer noch die Dateien der alten 
Version. Im Makefile sind ja keine Pfade - ist es nicht üblich unter 
*nix-Versionen, dass die Teile von /usr/local bevorzugt werden?

Habe ich noch was vergessen, oder war es eine fehlerhafte Annahme, dass 
man die avrlibc erneuern könnte, bei gleichem Compiler (4.1.0.dfsg.1-1)?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Vermutlich benutzt dein Basissystem --prefix=/usr, während der Default
der Tools --prefix=/usr/local ist.

Mein Tip wäre, dass du dir das Zeug aus dem Basissystem komplett
deinstallierst und Bing600's Buildscript von avrfreaks.net
benutzt:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=42631

von Santiago (Gast)


Lesenswert?

Hallo Jörg,

danke für Deine Unterstützung.

> Vermutlich benutzt dein Basissystem --prefix=/usr, während der Default
> der Tools --prefix=/usr/local ist.

Äh - ist das nicht immer so?
Nach /usr kommt das System plus Standard-Installationen, unter 
/usr/local die eigenen Erweiterungen und unter /opt die ganz schrägen 
Sachen?!?

> Mein Tip wäre, dass du dir das Zeug aus dem Basissystem komplett
> deinstallierst und Bing600's Buildscript von avrfreaks.net
> benutzt

Hey, ich bin ein Schisser/Ampeldrücker und genau das wollte ich 
eigentlich (!) vermeiden tun.

Habe das Skript gerade überflogen ...
von den Prerequesits fehlt mir: libcwidget-dev
scheint es für etch nicht zu geben?!?
Wer benötigt denn die widgets? Ist das wirklich Vorbedingung für die 
avr-Suite? Ich möchte nur Befehlszeilen-Varianten verwenden.

Was mich dann noch irritiert - es wird der komplette gcc erneuert.
Wie sind denn da die Auswirkungen auf den Rest meines Systems?
Würde mir ungern irgendwelche Seiteneffekte (wie z.B. der Zwang zu 
weiteren Updates, die nicht für etch bestimmt sind, Kernel bauen, 
Probleme mit vmware, o.ä.) einhandeln.

Habe gerade die installierten Pakete mit avr-Bezug gesucht:
1
ii  avr-libc                                  1.4.5-2                                 
2
ii  avrdude                                   5.2-2  
3
ii  avrdude-doc                               5.2-2  
4
ii  binutils-avr                              2.16.1-1                                
5
ii  gcc-avr                                   4.1.0.dfsg.1-1
reichen die zu deinstallieren, oder müsste ich tiefer schneiden?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Santiago wrote:

> Nach /usr kommt das System plus Standard-Installationen, unter
> /usr/local die eigenen Erweiterungen

Ja, aber die AVR-Toolchain braucht einen konsistenten Präfix für
alle Teile, nur so werden sie ohne zusätzliche Optionen wie -I
oder -L gefunden.  Wenn du bequem arbeiten willst, kannst du also
nicht den Compiler aus dem Basissystem nehmen, aber die System-
bibliothek unter /usr/local installieren.

>> Mein Tip wäre, dass du dir das Zeug aus dem Basissystem komplett
>> deinstallierst und Bing600's Buildscript von avrfreaks.net
>> benutzt

> Hey, ich bin ein Schisser/Ampeldrücker und genau das wollte ich
> eigentlich (!) vermeiden tun.

Dann bliebe dir nur noch, den Debian-Maintainer dazu zu bringen,
dass er den Patch- und Versionsstand der Debian-Portierungen
passend pflegt.  Leider geht's beim AVR nie wirklich ohne Patches
aus, dazu entwickelt sich das Produkt einfach zu schnell.  Die
großen GNU-Toolchains wie binutils und GCC sind einerseits mit
der Integration der entsprechenden Patches (sowas geht bei GCC
leider ziemlich schwerfällig) und andererseits mit ihren Releases
viel zu träge, um der relativ schnellen Entwicklung der AVRs
auch nur ansatzweise folgen zu können.  Solange der Debian-
Maintainer für die AVR-Toolchain also rein auf Releases aufsetzt,
hinkst du immer der AVR-Realität so 1...2 Jahre hinterher (je
nachdem, wie schnell die neuen AVRs zu dir auf den Tisch finden).

> von den Prerequesits fehlt mir: libcwidget-dev
> scheint es für etch nicht zu geben?!?

Keine Ahnung, was das ist.  Kannste Bingo600 in avrfreaks ja
selbst mal fragen (aber mach bitte einen neuen Thread auf und
poste es nicht im Announcement-Thread).

> Was mich dann noch irritiert - es wird der komplette gcc erneuert.

Nur für den AVR.  Der AVR-GCC benutzt den stinknormalen GCC-
Quellcode (plus einige Patches), konfiguriert wird er aber mit
--target=avr, dadurch werden die Binaries dann alle mit einem
Namenspräfix "avr-" installiert.

> Wie sind denn da die Auswirkungen auf den Rest meines Systems?+

Nada.  ничего.  nil.

> Habe gerade die installierten Pakete mit avr-Bezug gesucht:
>
1
> ii  avr-libc                                  1.4.5-2
2
> ii  avrdude                                   5.2-2
3
> ii  avrdude-doc                               5.2-2
4
> ii  binutils-avr                              2.16.1-1
5
> ii  gcc-avr                                   4.1.0.dfsg.1-1
6
>
> reichen die zu deinstallieren, oder müsste ich tiefer schneiden?

Sieht erstmal vernünftig aus.  Eventuell noch avarice, falls du es
installiert hast (da avr-gdb nicht dabei ist, hast du es aber
möglicherweise nicht).

von Santiago (Gast)


Lesenswert?

Hallo Jörg,

danke für die Erläuterungen.

>> Hey, ich bin ein Schisser/Ampeldrücker und genau das wollte ich
>> eigentlich (!) vermeiden tun.
>
> Dann bliebe dir nur noch, den Debian-Maintainer dazu zu bringen,
> dass er den Patch- und Versionsstand der Debian-Portierungen
> passend pflegt.

Mich jetzt bitte nich falsch verstehen. Ich habe keine Angst davor, ein 
Paket selbst zu bauen, nur was ich nicht möchte, ist mein stabiles und 
funktionstüchtiges Arbeitspferdchen zu infizieren.

>> Was mich dann noch irritiert - es wird der komplette gcc erneuert.
>
> Nur für den AVR.  Der AVR-GCC benutzt den stinknormalen GCC-
> Quellcode (plus einige Patches), konfiguriert wird er aber mit
> --target=avr, dadurch werden die Binaries dann alle mit einem
> Namenspräfix "avr-" installiert.

Ok, das hört sich ja so schlecht nicht an. Also der gcc 2mal auf meiner 
Platte unter jeweils anderem Namen ...
... gefällt mir.

Werde heute also mal besonders mutig sein :)

von Santiago (Gast)


Lesenswert?

Hallo,

kleine Vollzugsmeldung meinerseits:
1
Operation beendet und Patient lebt noch :)
Danke Jörg, für Deine (nicht nur moralische) Unterstützung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.