diff mbox

configure: fix -enable-debug with newer toolchains

Message ID 1338973398-1284-1-git-send-email-avi@redhat.com
State New
Headers show

Commit Message

Avi Kivity June 6, 2012, 9:03 a.m. UTC
Fedora 17's toolchain wants optimization enabled for _FORTIFY_SOURCE;
so disable _FORTIFY_SOURCE when debugging.

Signed-off-by: Avi Kivity <avi@redhat.com>
---
 configure |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Peter Maydell June 6, 2012, 9:32 a.m. UTC | #1
On 6 June 2012 10:03, Avi Kivity <avi@redhat.com> wrote:
> Fedora 17's toolchain wants optimization enabled for _FORTIFY_SOURCE;
> so disable _FORTIFY_SOURCE when debugging.

Well, that sucks, but it seems to be a deliberate change in
upstream glibc to make it warn now :-(  I guess everybody
in the world will have to fix their makefiles...

> Signed-off-by: Avi Kivity <avi@redhat.com>
> ---
>  configure |    3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/configure b/configure
> index 1f338f8..88d9c5b 100755
> --- a/configure
> +++ b/configure
> @@ -255,7 +255,6 @@ QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
>  QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
>  QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
>  QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
> -QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
>  QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
>  if test "$debug_info" = "yes"; then
>     CFLAGS="-g $CFLAGS"
> @@ -2851,7 +2850,7 @@ fi
>  # After here, no more $cc or $ld runs
>
>  if test "$debug" = "no" ; then
> -  CFLAGS="-O2 $CFLAGS"
> +  CFLAGS="-O2 -D_FORTIFY_SOURCE=2 $CFLAGS"
>  fi

It feels a bit odd to have the FORTIFY_SOURCE define in CFLAGS rather
than QEMU_CFLAGS, but I think it should behave correctly so I think
it's right.

-- PMM
Eduardo Habkost June 12, 2012, 7:46 p.m. UTC | #2
On Wed, Jun 06, 2012 at 12:03:18PM +0300, Avi Kivity wrote:
> Fedora 17's toolchain wants optimization enabled for _FORTIFY_SOURCE;
> so disable _FORTIFY_SOURCE when debugging.
> 
> Signed-off-by: Avi Kivity <avi@redhat.com>

I was bitten by this problem too. The patch fixes it for me.

Tested-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

The patch changes behavior a bit, by moving -D_FORTIFY_SOURCE to CFLAGS
instead of QEMU_CFLAGS, but it sounds like a good idea to keep the -O
option and -D_FORTIFY_SOURCE close together (anybody overriding/removing
-O on CFLAGS on the make command-line would need to take care of
-D_FORTIFY_SOURCE as well).


> ---
>  configure |    3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index 1f338f8..88d9c5b 100755
> --- a/configure
> +++ b/configure
> @@ -255,7 +255,6 @@ QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
>  QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
>  QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
>  QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
> -QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
>  QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
>  if test "$debug_info" = "yes"; then
>      CFLAGS="-g $CFLAGS"
> @@ -2851,7 +2850,7 @@ fi
>  # After here, no more $cc or $ld runs
>  
>  if test "$debug" = "no" ; then
> -  CFLAGS="-O2 $CFLAGS"
> +  CFLAGS="-O2 -D_FORTIFY_SOURCE=2 $CFLAGS"
>  fi
>  
>  # Consult white-list to determine whether to enable werror
> -- 
> 1.7.10.1
>
Anthony Liguori June 20, 2012, 1:06 p.m. UTC | #3
On 06/06/2012 04:03 AM, Avi Kivity wrote:
> Fedora 17's toolchain wants optimization enabled for _FORTIFY_SOURCE;
> so disable _FORTIFY_SOURCE when debugging.
>
> Signed-off-by: Avi Kivity<avi@redhat.com>

Applied.  Thanks.

Regards,

Anthony Liguori

> ---
>   configure |    3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/configure b/configure
> index 1f338f8..88d9c5b 100755
> --- a/configure
> +++ b/configure
> @@ -255,7 +255,6 @@ QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
>   QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
>   QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
>   QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
> -QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
>   QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
>   if test "$debug_info" = "yes"; then
>       CFLAGS="-g $CFLAGS"
> @@ -2851,7 +2850,7 @@ fi
>   # After here, no more $cc or $ld runs
>
>   if test "$debug" = "no" ; then
> -  CFLAGS="-O2 $CFLAGS"
> +  CFLAGS="-O2 -D_FORTIFY_SOURCE=2 $CFLAGS"
>   fi
>
>   # Consult white-list to determine whether to enable werror
diff mbox

Patch

diff --git a/configure b/configure
index 1f338f8..88d9c5b 100755
--- a/configure
+++ b/configure
@@ -255,7 +255,6 @@  QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
 QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
 QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
-QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
 QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
 if test "$debug_info" = "yes"; then
     CFLAGS="-g $CFLAGS"
@@ -2851,7 +2850,7 @@  fi
 # After here, no more $cc or $ld runs
 
 if test "$debug" = "no" ; then
-  CFLAGS="-O2 $CFLAGS"
+  CFLAGS="-O2 -D_FORTIFY_SOURCE=2 $CFLAGS"
 fi
 
 # Consult white-list to determine whether to enable werror