ld: could not find output section .bss...

OP #367179
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.
Gast #367181
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.
OP #367182
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
OP #367183
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.
Gast #367184
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.
OP #367185
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.

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