Forum: Compiler & IDEs STM32: GCC: C++: Mapfile: Unwind Einträge


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Buzzwang (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

mittels gcc habe ich ein kleines C++ LedBlink Test-Projekt gebaut. 
Exceptions handling habe ich per Build Option deaktiviert.

Daher wundert es mich, dass ich map file ~2kb 'Unwind' Einträge sehe. 
Die würde ich gerne weg haben. Geht das ?

Soviel ich weiß, werden die 'Unwind' nur für Stackverwaltung bei einer 
Exceptions benötigt. Mein Test-Projekt benutzt keine Exeptions.

Mittels google konnte ich leider sehr wenig dazu finden.
Das hier konnte ich finden. Aber es hat mir nicht direkt weitergeholfen.
https://embdev.net/topic/201054#1975689
Beitrag "NIOSII GCC4 Exception Handling Codesize"

Wenn ich pure C Test-Projekt mache, habe ich die Einträge nicht. Zum 
Spass hatte ich eine c in cpp umbenannt und dann waren sie wieder da.

von Thomas W. (goaty)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht "-fno-exceptions" als Compileroption ?

Ach ne, das hast du ja schon ausgeschaltet.

Vielleicht ist noch ein -lunwind oder so drin ?

: Bearbeitet durch User
von Buzzwang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Anbei meine C++ Build Optionen.
"-lunwind" habe ich nicht drin.

# C++ specific settings:
# -----------------------------------------------
  -fmessage-length=0 
  -fsigned-char 
  -fdata-sections 
  -Wextra  
  -std=gnu++11 
  -fabi-version=6 
  -fno-exceptions 
  -fno-rtti 
  -fno-use-cxa-atexit 
  -fno-threadsafe-statics 
  -nostdinc++ 

von Markus F. (mfro)


Bewertung
0 lesenswert
nicht lesenswert
pack' mal noch

-fno-unwind-tables

dazu

von Buzzwang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe.
Ich habe mir leider selbst ins Knie geschossen :(.

Ich benutze eine CMAKE + Ninja Kombination. Als mit den obigen 
Einstellungen immer noch die Unwind Tabellen auftauchten, habe ich in 
das build.ninja reingeschaut und gesehen, dass sämtliche C++ Flags 
gefehlt haben. Nach etwas rumsuchen habe ich bemerkt, dass ich die C++ 
Flags in eine falsche Liste geschrieben hatte und die daher nicht 
genutzt wurden.
Nach Korrektur ging es wie erwartet und die Unwind-Tabellen waren dann 
weg.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.