From 27a79a4422ae4b0331aa3700d311e023a162ad22 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 2 Jan 2015 14:36:53 -0800 Subject: [PATCH] configure: Omit -O2 from CFLAGS when configuring with --enable-coverage. 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 Signed-off-by: Ben Pfaff --- m4/openvswitch.m4 | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4 index 3f0d097d7..ba3ed9b31 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]) -- 2.20.1