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