Message ID | 1516112253-14480-13-git-send-email-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Series | [PULL,01/51] scsi-generic: Add share-rw option | expand |
On 16 January 2018 at 14:16, Paolo Bonzini <pbonzini@redhat.com> wrote: > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > When --enable-debug is turned on, configure doesn't set -O level, and > uses default compiler -O0 level, which is slow. > > Instead, use -Og if supported by the compiler (optimize debugging > experience), or -O1 (keeps code somewhat debuggable and works around > compiler bugs). This gives me a noticeably worse debug experience (using -Og), because gdb shows a lot more "<optimised out>" variables and function arguments. (I've been mildly irritated by this for the last few weeks and only just figured out why this was happening.) Can we go back to the previous behaviour, please ? I don't care if the build is slow if I'm debugging, but I really do care that I don't have my variables and arguments all optimised away by the compiler so I can't tell what's going on. thanks -- PMM
Peter Maydell <peter.maydell@linaro.org> writes: > On 16 January 2018 at 14:16, Paolo Bonzini <pbonzini@redhat.com> wrote: >> From: Marc-André Lureau <marcandre.lureau@redhat.com> >> >> When --enable-debug is turned on, configure doesn't set -O level, and >> uses default compiler -O0 level, which is slow. >> >> Instead, use -Og if supported by the compiler (optimize debugging >> experience), or -O1 (keeps code somewhat debuggable and works around >> compiler bugs). > > This gives me a noticeably worse debug experience (using -Og), > because gdb shows a lot more "<optimised out>" variables and > function arguments. (I've been mildly irritated by this for > the last few weeks and only just figured out why this was > happening.) I was wondering why my: ./configure --enable-debug --enable-debug-tcg --extra-cflags="-O0 -g3" --target-list=aarch64-linux-user builds where showing that. > Can we go back to the previous behaviour, please ? I don't > care if the build is slow if I'm debugging, but I really do > care that I don't have my variables and arguments all > optimised away by the compiler so I can't tell what's going on. +1 There is a lot of other stuff enabled when debugging which slows stuff down anyway. -- Alex Bennée
On 02/03/2018 19:48, Peter Maydell wrote: > On 16 January 2018 at 14:16, Paolo Bonzini <pbonzini@redhat.com> wrote: >> From: Marc-André Lureau <marcandre.lureau@redhat.com> >> >> When --enable-debug is turned on, configure doesn't set -O level, and >> uses default compiler -O0 level, which is slow. >> >> Instead, use -Og if supported by the compiler (optimize debugging >> experience), or -O1 (keeps code somewhat debuggable and works around >> compiler bugs). > > This gives me a noticeably worse debug experience (using -Og), > because gdb shows a lot more "<optimised out>" variables and > function arguments. (I've been mildly irritated by this for > the last few weeks and only just figured out why this was > happening.) > > Can we go back to the previous behaviour, please ? I don't > care if the build is slow if I'm debugging, but I really do > care that I don't have my variables and arguments all > optimised away by the compiler so I can't tell what's going on. Ok, will do. Thanks, Paolo
diff --git a/configure b/configure index ac392d2..6f1b7cd 100755 --- a/configure +++ b/configure @@ -5194,8 +5194,19 @@ if test "$gcov" = "yes" ; then LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS" elif test "$fortify_source" = "yes" ; then CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS" -elif test "$debug" = "no"; then - CFLAGS="-O2 $CFLAGS" +elif test "$debug" = "yes"; then + if compile_prog "-Og" ""; then + CFLAGS="-Og $CFLAGS" + elif compile_prog "-O1" ""; then + CFLAGS="-O1 $CFLAGS" + fi + # Workaround GCC false-positive Wuninitialized bugs with Og or O1: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639 + if cc_has_warning_flag "-Wno-maybe-uninitialized"; then + CFLAGS="-Wno-maybe-uninitialized $CFLAGS" + fi +else + CFLAGS="-O2 $CFLAGS" fi ##########################################