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