That page does have a reasonable point.  I think that coverage is a
special case, so I applied this patch, but I'm not going to pursue it
for --enable-debug.

On Mon, Jan 05, 2015 at 11:00:00AM +0000, Finucane, Stephen wrote:
> I think it's worth adding that, while the below is using a different 
> approach, Stack Overflow thinks this is a bad idea:
> 
>       http://stackoverflow.com/a/4680578/613428
> 
> I'm not confident enough with Autotools to say that this definitely should 
> not be done, but there are some good points to be made for not hacking the 
> CFLAGS as done below.
> 
> Stephen
> 
> > CFLAGS follows OVS_CFLAGS in the compiler command line, and should, so that
> > the user can override any automatically determined compiler options.  That
> > means that the -O0 that the code here added to OVS_CFLAGS didn't really
> > have any effect since CFLAGS by default includes "-O2".  However, we do
> > really want to disable optimizations (because the coverage reports are hard
> > to interpret with optimizations), so this commit changes the configure
> > script to edit out -O2 from CFLAGS, leaving any other default or
> > user-specified options.
> > 
> > Reported-by: Mijo Safradin <m...@linux.vnet.ibm.com>
> > Signed-off-by: Ben Pfaff <b...@nicira.com>
> > ---
> >  m4/openvswitch.m4 |   16 ++++++++++++++--
> >  1 file changed, 14 insertions(+), 2 deletions(-)
> > 
> > diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4
> > index 3f0d097..ba3ed9b 100644
> > --- a/m4/openvswitch.m4
> > +++ b/m4/openvswitch.m4
> > @@ -1,6 +1,6 @@
> >  # -*- autoconf -*-
> > 
> > -# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
> > +# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira,
> > Inc.
> >  #
> >  # Licensed under the Apache License, Version 2.0 (the "License");
> >  # you may not use this file except in compliance with the License.
> > @@ -30,7 +30,19 @@ AC_DEFUN([OVS_CHECK_COVERAGE],
> >        esac],
> >       [coverage=false])
> >     if $coverage; then
> > -     OVS_CFLAGS="$OVS_CFLAGS -O0 --coverage"
> > +     # Autoconf by default puts "-g -O2" in CFLAGS.  We need to remove the
> > -O2
> > +     # option for coverage to be useful.  This does it without otherwise
> > +     # interfering with anything that the user might have put there.
> > +     old_CFLAGS=$CFLAGS
> > +     CFLAGS=
> > +     for option in $old_CFLAGS; do
> > +        case $option in
> > +            (-O2) ;;
> > +            (*) CFLAGS="$CFLAGS $option" ;;
> > +        esac
> > +     done
> > +
> > +     OVS_CFLAGS="$OVS_CFLAGS --coverage"
> >       OVS_LDFLAGS="$OVS_LDFLAGS --coverage"
> >     fi])
> > 
> > --
> > 1.7.10.4
> > 
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to