Skip to content

Commit

Permalink
configure: Omit -O2 from CFLAGS when configuring with --enable-coverage.
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
  • Loading branch information
blp committed Jan 12, 2015
1 parent 0400985 commit 27a79a4
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions m4/openvswitch.m4
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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])

Expand Down

0 comments on commit 27a79a4

Please sign in to comment.