Forum: Compiler & IDEs GCC Compiler Flags während Build


von Michael (Gast)


Lesenswert?

Hallo,

Wenn ich GCC verschiedene Flags mitgebe, wie zum Beispiel "-Os", dann 
führt dies intern oftmals zu weiteren Flags, die damit implizit gesetzt 
werden.

Gibt es eine Möglichkeit zu sehen, welche Flags (also explizit und 
implizit) letztlich Anwendung bei der Kompilierung einer 
C-Quellcode-Datei finden? Wird diese Information beispielsweise in 
temporären Daten gesichert, die mit "-save-temps" erhalten werden 
könnten?


Michael

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

-save-temps -fverbose-asm

IIRC auch -v -Q, aber manche Flags werden da verwirrend angezeigt (z.B. 
welche die mit -1 initialisiert sind).

von Michael (Gast)


Lesenswert?

Johann L. schrieb:
> -save-temps -fverbose-asm

Das führt bei mir seltsamerweise dazu, dass das Binary größer wird?! Was 
kann das denn sein?

Johann L. schrieb:
> IIRC auch -v -Q, aber manche Flags werden da verwirrend angezeigt (z.B.
> welche die mit -1 initialisiert sind).

Ganz herzlichen Dank, das habe ich gesucht!

Ich bin nämlich einem komischen Fehler in meinem Code auf der Spur, der 
nur bei bestimmten Optimierungseinstellungen auftritt. Anhand der Flags 
habe ich die Hoffnung die Stelle im Code eingrenzen zu können, wenn ich 
das Listing vorher und nachher vergleiche nachdem ich gezielt ein Flag 
aktiviere bzw. deaktiviere.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Michael schrieb:
> Johann L. schrieb:
>> -save-temps -fverbose-asm
>
> Das führt bei mir seltsamerweise dazu, dass das Binary größer wird?! Was
> kann das denn sein?

Debug-Info?

> Ich bin nämlich einem komischen Fehler in meinem Code auf der Spur, der
> nur bei bestimmten Optimierungseinstellungen auftritt. Anhand der Flags
> habe ich die Hoffnung die Stelle im Code eingrenzen zu können, wenn ich
> das Listing vorher und nachher vergleiche nachdem ich gezielt ein Flag
> aktiviere bzw. deaktiviere.

Im Makefile kann man einfach Optionen für bestimmte Mudule setzen wie
1
modul.o: CFLAGS += -fno-lto
Ohne modulübergreifende Optimierung ist es schon mal einfacher, ein 
Modul einzugrenzen.

von Werner B. (werner-b)


Lesenswert?

Eben gefunden auf

https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

"... You can invoke GCC with -Q --help=optimizers to find out the exact 
set of optimizations that are enabled at each level. ..."

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.