[ovs-dev] [PATCH] configure: Omit -O2 from $CFLAGS when configuring with --enable-coverage.
Ben Pfaff
blp at nicira.com
Fri Jan 2 22:39:12 UTC 2015
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 <mijo at linux.vnet.ibm.com>
Signed-off-by: Ben Pfaff <blp at 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
More information about the dev
mailing list