Since we're using gcc 4.4 in master, we can use the -Werror= option
to make not having a virtual destructor in classes with virtual
methods an error. I already fixed all code that had this problem,
so now it's a matter of turning the option on.
Also, as long as we don't have any C-specific options, it's
probably best to copy the CPP flags from the C flags. We can
always break them out later.
diff --git a/core/config.mk b/core/config.mk
index 6e11d6c..bc862df 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -78,8 +78,8 @@
 COMMON_GLOBAL_CFLAGS:= -DANDROID -fmessage-length=0 -W -Wall -Wno-unused
 COMMON_RELEASE_CFLAGS:= -DNDEBUG -UDEBUG
 
-COMMON_GLOBAL_CPPFLAGS:= -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Wnon-virtual-dtor
-COMMON_RELEASE_CPPFLAGS:= -DNDEBUG -UDEBUG
+COMMON_GLOBAL_CPPFLAGS:= $(COMMON_GLOBAL_CFLAGS)
+COMMON_RELEASE_CPPFLAGS:= $(COMMON_RELEASE_CFLAGS)
 
 # Set the extensions used for various packages
 COMMON_PACKAGE_SUFFIX := .zip
@@ -87,7 +87,7 @@
 COMMON_ANDROID_PACKAGE_SUFFIX := .apk
 
 # list of flags to turn specific warnings in to errors
-TARGET_ERROR_FLAGS := -Werror=return-type
+TARGET_ERROR_FLAGS := -Werror=return-type -Werror=non-virtual-dtor
 
 # TODO: do symbol compression
 TARGET_COMPRESS_MODULE_SYMBOLS := false