From 024af793fa6d6af644c225804d140cc13aa56307 Mon Sep 17 00:00:00 2001
From: Antonio Ospite <ospite@studenti.unina.it>
Date: Tue, 4 Dec 2012 11:46:12 +0100
Subject: [PATCH] Fix an error when compiling with both -O0 and
 -Wp,-D_FORTIFY_SOURCE=2

Fix the following error happening with the gcc shipped on some Ubuntu
versions:

In file included from /usr/include/stdio.h:27:0,
                 from /home/pedro/lib/libam7xxx/src/am7xxx.c:19:
/usr/include/features.h:330:4: error: #warning _FORTIFY_SOURCE
requires compiling with optimization (-O) [-Werror=cpp]
cc1: all warnings being treated as errors
make[2]: *** [src/CMakeFiles/am7xxx.dir/am7xxx.c.o] Error 1
make[1]: *** [src/CMakeFiles/am7xxx.dir/all] Error 2
make: *** [all] Error 2

Reported-by: Petr Certik <petr@certik.cz>
---
 CMakeLists.txt | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e525cc..d99e401 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,7 +48,6 @@ if (CMAKE_COMPILER_IS_GNUCC)
     -Winit-self
     -Winline
     -Wpacked
-    -Wp,-D_FORTIFY_SOURCE=2
     -Wpointer-arith
     -Wlarger-than-65500
     -Wmissing-declarations
@@ -68,13 +67,13 @@ if (CMAKE_COMPILER_IS_GNUCC)
     -Wwrite-strings
     -fstack-protector
     --param=ssp-buffer-size=4)
-endif()
 
-set(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb -DDEBUG=1")
-set(CMAKE_C_FLAGS_RELEASE "-O2")
-set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
+  add_flags(DEBUG_FLAGS
+    -ggdb)
+
+  add_flags(RELEASE_FLAGS
+    -Wp,-D_FORTIFY_SOURCE=2)
 
-if (CMAKE_COMPILER_IS_GNUCC)
   if (STRICT_COMPILATION_CHECKS)
     add_flags(STRICT_FLAGS
       -Werror
@@ -83,12 +82,13 @@ if (CMAKE_COMPILER_IS_GNUCC)
       # NOTE: GCC >= 4.6 is needed for -Wunused-but-set-variable
       -Wunused-but-set-variable)
 
-    add_flags(CMAKE_C_FLAGS_DEBUG ${STRICT_FLAGS})
-    add_flags(CMAKE_C_FLAGS_RELEASE ${STRICT_FLAGS})
-    add_flags(CMAKE_C_FLAGS_RELWITHDEBINFO ${STRICT_FLAGS})
   endif()
 endif()
 
+set(CMAKE_C_FLAGS_DEBUG "-O0 ${DEBUG_FLAGS} ${STRICT_FLAGS}")
+set(CMAKE_C_FLAGS_RELEASE "-O2 ${RELEASE_FLAGS} ${STRICT_FLAGS}")
+set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 ${RELEASE_FLAGS} ${DEBUG_FLAGS} ${STRICT_FLAGS}")
+
 # Add library project
 add_subdirectory(src)
 add_subdirectory(examples)
-- 
2.1.4