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


von Buzzwang (Gast)


Angehängte Dateien:

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)


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)


Lesenswert?

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

1
# C++ specific settings:
2
# -----------------------------------------------
3
  -fmessage-length=0 
4
  -fsigned-char 
5
  -fdata-sections 
6
  -Wextra  
7
  -std=gnu++11 
8
  -fabi-version=6 
9
  -fno-exceptions 
10
  -fno-rtti 
11
  -fno-use-cxa-atexit 
12
  -fno-threadsafe-statics 
13
  -nostdinc++

von Markus F. (mfro)


Lesenswert?

pack' mal noch

-fno-unwind-tables

dazu

von Buzzwang (Gast)


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.

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.