Forum: Compiler & IDEs ld: could not find output section .bss...


von Martin #. (martin-)


Lesenswert?

Hallo.
Ich versuche gerade etwas mit avr-gcc zu compilieren.
Ich bekomme jedoch folgende Fehlermeldung:
could not find output section .bss for input section .bss

und:
final link failed: Nonrepresentable section on output

Diese Meldungen wirft linker ld raus.
Kann mir jemand vielleicht sagen was das bedeutet ?

Wäre sehr dankbar  für die Antwort auf diese Frage.

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


Lesenswert?

Reich' uns mal bitte die Kommandozeilen von Compiler und Linker
nach, die du benutzt hast.

von Stefan (Gast)


Lesenswert?

Welche GCC Version benutzt du? Wie sieht das Linker Control Script
(*.ld) aus und hast du eventuell eine leere .data Section vor der .bss
section und ein Alignment-Problem? Ein Stück Minimalprogrammcode bei
dem das Problem auftritt, wäre auch nicht schlecht.

von Martin #. (martin-)


Lesenswert?

Also Kommandozeilen sehen wie folgt aus:

/*hier keine probleme*/
avr-gcc -Wall -mmcu=atmega16 -Os -c bsp1.c
/*hier die besagte Fehlermeldung*/
avr-gcc -Wall -mmcu=atmega16 -o bsp1.out -Wl,-Map,bsp1.map bsp1.o

/*Noch mal ganze Fehlermeldung*/
/opt/cross/lib64/gcc/avr/4.0.2/../../../../avr/bin/ld: bsp1.out: could
not find output section .bss for input section .bss

/opt/cross/lib64/gcc/avr/4.0.2/../../../../avr/bin/ld: final link
failed: Nonrepresentable section on output

make: *** [bsp1.out] Fehler 1

von Martin #. (martin-)


Lesenswert?

>>Welche GCC Version
4.0.2
>>>Wie sieht das Linker Control Script (*.ld)
Tut mir leid, ich habe keine sollche Datei, die irgendwie so heisst
(*.ld)

>>hast du eventuell eine leere .data Section vor der .bss
section und ein Alignment-Problem?
Oh, tut mir leid aber jetzt verstehe kein Wort. Ich wusste nicht das
ich eine .data Section habe uns chon gar nicht ob sie leer ist oder
nicht.
Ich weiss leider nicht was ein Alignment-Problem ist, also ich weiss es
nicht ob ich ihn habe.

>>Ein Stück Minimalprogrammcode
int main()
{

    return 0;
}
Schon bei solchem code tritt der Fehler auf.

von Stefan (Gast)


Lesenswert?

Sorry, die haben bei AVR andere Endungen *.x* und stehen im zentralen
avr/lib/ldscripts Verzeichnis. Ich denke nicht, dass dann du dort eine
Abweichung zur Standardinstallation hast. Das Alignment-Problem bei
leeren Sections habe ich wahrscheinlich falsch vom WinARM her im
Hinterkopf. Es wäre interessant, ob dies bei deinem avr-gcc normal
funktioniert:
1
const int dummyData = 1234;  // dummyData in .data anlegen
2
int dummyBss;                // dummyBss in .bss (.comm) anlegen
3
4
int main()
5
{
6
  return 0;
7
}

Du benutzt den avr-gcc unter Linux?

Es gibt ähnliche Fehlerberichte im AVRFreaks AVR GCC Forum:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=35213&highlight=output+section+input

Das Problem dort konnte von den zwei Betroffenen durch eine
Neuinstallation aus einer aktuelleren Distribution behoben werden.

von Martin #. (martin-)


Lesenswert?

Danke für die Antwort Stefan

Die *.x* Dateien sind da wo sie sein sollen, aber ob sie auch korrekt
sind?
>>Es wäre interessant ob dies bei deinem avr-gcc..
Also inzwischen habe ich avr-gcc aus den Quellen kompiliert (quellen
von 3.4.2 hatte ich noch auf der Festplatte).
Diese Version hat damit kein Problem (scheint so jedenfalls, hex-Datei
wird erstellt, und es gibt keine Warnungen)
>>Du benutzt den avr-gcc unter Linux?
Ja.
Es ist also einfach so, dass es mit der Installation was nicht stimmt.
Bei mir war es genau das gleiche Problem wie unter dem Link
beschrieben. Ich habe halt ein paar Monate nichts mit AVRs gemacht,
heute wollte ich mir auf die schnelle avr-gcc instalieren. Habe mir
schnell Packete zusammengesucht und installiert, aber ausgerechnet die
Kaputten.

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


Lesenswert?

Ich glaube mich zu erinnern, dass das ein Problem mit GCC 4.0.x
sein könnte.  Wenn du einen 4.xer nehmen willst, nimm 4.1.x, die
tun ordentlich.

von Martin #. (martin-)


Lesenswert?

Ja kann schon sein, bei neueren Packete mit avr-gcc-4.1.2, die ich
gerade installiert habe, scheint alles in Ordnung zu sein.
Danke für die Antworten.

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.