From cc9ac86bcff79697d354cc51d3a984fd0f362868 Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Thu, 22 Sep 2016 22:59:11 +0200
Subject: [PATCH] Disable Werror everywhere

With gcc-5.1, some constructs that were previously accepted (but wrong)
are now considered warnings, and thus -Werror makes them errors.

Ditch -Werror altoghether.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

[Rebased for rpi-userland-a1b89e91f393c7134b4cdc36431f863bb3333163]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>

[Rebased for rpi-userland-8f0abfb07b96e7ee85f46e59d895014ec5e25f5e]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>

[Rebased for rpi-userland-5070cb7fc150fc98f1ed64a7739c3356970d9f76]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
 host_applications/android/apps/vidtex/CMakeLists.txt | 2 +-
 host_applications/linux/apps/gencmd/CMakeLists.txt   | 2 +-
 host_applications/linux/apps/raspicam/CMakeLists.txt | 2 +-
 host_applications/linux/apps/smem/CMakeLists.txt     | 2 +-
 host_applications/linux/libs/bcm_host/CMakeLists.txt | 2 +-
 host_applications/linux/libs/sm/CMakeLists.txt       | 2 +-
 interface/mmal/CMakeLists.txt                        | 2 +-
 interface/vcos/CMakeLists.txt                        | 2 +-
 interface/vcos/pthreads/CMakeLists.txt               | 2 +-
 interface/vmcs_host/CMakeLists.txt                   | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/host_applications/android/apps/vidtex/CMakeLists.txt b/host_applications/android/apps/vidtex/CMakeLists.txt
index 6d66d69..06a3192 100644
--- a/host_applications/android/apps/vidtex/CMakeLists.txt
+++ b/host_applications/android/apps/vidtex/CMakeLists.txt
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 2.8)
 
-SET(COMPILE_DEFINITIONS -Werror -Wall)
+SET(COMPILE_DEFINITIONS -Wall)
 
 # Set --no-as-needed to stop the linker discarding mmal_vc_client
 # as it can't see that the constructor registers a load of functionality
diff --git a/host_applications/linux/apps/gencmd/CMakeLists.txt b/host_applications/linux/apps/gencmd/CMakeLists.txt
index f95d1a1..034bf20 100644
--- a/host_applications/linux/apps/gencmd/CMakeLists.txt
+++ b/host_applications/linux/apps/gencmd/CMakeLists.txt
@@ -4,7 +4,7 @@ if (WIN32)
    set(VCOS_PLATFORM win32)
 else ()
    set(VCOS_PLATFORM pthreads)
-   add_definitions(-Wall -Werror)
+   add_definitions(-Wall )
 endif ()
 
 include_directories( ../../../.. 
diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt
index f7db21e..b94bdc3 100644
--- a/host_applications/linux/apps/raspicam/CMakeLists.txt
+++ b/host_applications/linux/apps/raspicam/CMakeLists.txt
@@ -1,7 +1,7 @@
 
 # raspistill/raspivid/raspiyuv
 
-SET(COMPILE_DEFINITIONS -Werror)
+SET(COMPILE_DEFINITIONS )
 
 # Set --no-as-needed to stop the linker discarding mmal_vc_client
 # as it can't see that the constructor registers a load of functionality
diff --git a/host_applications/linux/apps/smem/CMakeLists.txt b/host_applications/linux/apps/smem/CMakeLists.txt
index 0fa8328..f0d1e77 100644
--- a/host_applications/linux/apps/smem/CMakeLists.txt
+++ b/host_applications/linux/apps/smem/CMakeLists.txt
@@ -4,7 +4,7 @@ get_filename_component (VIDEOCORE_ROOT ../../../.. ABSOLUTE)
 include (${VIDEOCORE_ROOT}/makefiles/cmake/global_settings.cmake)
 
 if (NOT WIN32)
-   add_definitions(-Wall -Werror)
+   add_definitions(-Wall )
 endif ()
 
 include_directories (
diff --git a/host_applications/linux/libs/bcm_host/CMakeLists.txt b/host_applications/linux/libs/bcm_host/CMakeLists.txt
index 2154e53..c23779b 100644
--- a/host_applications/linux/libs/bcm_host/CMakeLists.txt
+++ b/host_applications/linux/libs/bcm_host/CMakeLists.txt
@@ -3,7 +3,7 @@ if (WIN32)
    set(VCOS_PLATFORM win32)
 else ()
    set(VCOS_PLATFORM pthreads)
-   add_definitions(-Wall -Werror)
+   add_definitions(-Wall )
 endif ()
 
 # set this as we want all the source of vchostif to be available in libbcm_host
diff --git a/host_applications/linux/libs/sm/CMakeLists.txt b/host_applications/linux/libs/sm/CMakeLists.txt
index 5ce5aca..02aea7c 100644
--- a/host_applications/linux/libs/sm/CMakeLists.txt
+++ b/host_applications/linux/libs/sm/CMakeLists.txt
@@ -3,7 +3,7 @@ if (WIN32)
    set(VCOS_PLATFORM win32)
 else ()
    set(VCOS_PLATFORM pthreads)
-   add_definitions(-Wall -Werror)
+   add_definitions(-Wall )
 endif ()
 
 include_directories( ../../../..
diff --git a/interface/mmal/CMakeLists.txt b/interface/mmal/CMakeLists.txt
index 46f149d..06273dc 100644
--- a/interface/mmal/CMakeLists.txt
+++ b/interface/mmal/CMakeLists.txt
@@ -3,7 +3,7 @@ if (NOT DEFINED LIBRARY_TYPE)
 set(LIBRARY_TYPE SHARED)
 endif (NOT DEFINED LIBRARY_TYPE)
 
-add_definitions(-Wall -Werror)
+add_definitions(-Wall )
 
 add_library(mmal SHARED util/mmal_util.c)
 
diff --git a/interface/vcos/CMakeLists.txt b/interface/vcos/CMakeLists.txt
index 23a8d72..988b104 100644
--- a/interface/vcos/CMakeLists.txt
+++ b/interface/vcos/CMakeLists.txt
@@ -43,7 +43,7 @@ foreach (header ${HEADERS})
 endforeach ()
 
 if (CMAKE_COMPILER_IS_GNUCC)
-   add_definitions (-ggdb -Werror -Wall)
+   add_definitions (-ggdb  -Wall)
 endif ()
 
 if (CMAKE_COMPILER_2005)
diff --git a/interface/vcos/pthreads/CMakeLists.txt b/interface/vcos/pthreads/CMakeLists.txt
index 1d81ca3..b35cd8e 100644
--- a/interface/vcos/pthreads/CMakeLists.txt
+++ b/interface/vcos/pthreads/CMakeLists.txt
@@ -1,7 +1,7 @@
 # MSVC5 does not fully support C99, enabling declaration-after-statement
 # warnings allows a common MSVC5 build error to be detected in Linux builds.
 if (CMAKE_COMPILER_IS_GNUCC)
-   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wdeclaration-after-statement")
+   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall  -Wdeclaration-after-statement")
    add_definitions (-D_GNU_SOURCE)
 endif ()
 
diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
index a157db1..dc384ca 100755
--- a/interface/vmcs_host/CMakeLists.txt
+++ b/interface/vmcs_host/CMakeLists.txt
@@ -2,7 +2,7 @@
 # interface/vmcs_host
 
 # not working in release build
-# add_definitions(-Werror)
+# add_definitions()
 
 # vc_vchi_gencmd.c has a type-punning problem in vc_gencmd_read_response
 add_definitions(-fno-strict-aliasing)
-- 
2.23.0

