GCC Compiler Flags während Build

Gast #4380900
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
Gast #4381281
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.
Persönliche Seite #4381293
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.

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