From 3ad956e73f0b79bca92949faf726768927caba3e Mon Sep 17 00:00:00 2001
From: Yang Tse <yangsita@gmail.com>
Date: Mon, 13 Oct 2008 17:06:06 +0000
Subject: [PATCH] Adjust GCC warnings:

  Disable following warnings when cross-compiling with a gcc older
  than 3.0, to avoid warnings from third party system headers:

    -Wmissing-prototypes
    -Wunused
    -Wshadow
---
 ares/m4/cares-compilers.m4 | 16 ++++++++++++++--
 m4/curl-compilers.m4       | 16 ++++++++++++++--
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/ares/m4/cares-compilers.m4 b/ares/m4/cares-compilers.m4
index 09fdac8791..d25c664910 100644
--- a/ares/m4/cares-compilers.m4
+++ b/ares/m4/cares-compilers.m4
@@ -750,9 +750,14 @@ AC_DEFUN([CARES_SET_COMPILER_WARNING_OPTS], [
           fi
           dnl Set of options we believe *ALL* gcc versions support:
           tmp_CFLAGS="$tmp_CFLAGS -Wall -W -Winline -Wnested-externs"
-          tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes -Wpointer-arith"
-          tmp_CFLAGS="$tmp_CFLAGS -Wwrite-strings"
+          tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings"
           dnl -Wcast-align is a bit too annoying on all gcc versions ;-)
+          dnl Do not enable some warnings, when cross-compiling with a gcc
+          dnl older than 3.0, triggered on third party system headers.
+          if test "x$cross_compiling" != "xyes" ||
+            test "$compiler_num" -ge "300"; then
+            tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes"
+          fi
           if test "$compiler_num" -ge "207"; then
             dnl gcc 2.7 or later
             tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations"
@@ -790,6 +795,13 @@ AC_DEFUN([CARES_SET_COMPILER_WARNING_OPTS], [
         if test "$compiler_num" -ge "300"; then
           dnl gcc 3.0 and later
           tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers"
+        else
+          dnl Disable some warnings, when cross-compiling with a gcc
+          dnl older than 3.0, triggered on third party system headers.
+          if test "x$cross_compiling" = "xyes"; then
+            tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes"
+            tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow"
+          fi
         fi
         ;;
         #
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index d25cba65a7..d7ab28a740 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
@@ -756,9 +756,14 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
           fi
           dnl Set of options we believe *ALL* gcc versions support:
           tmp_CFLAGS="$tmp_CFLAGS -Wall -W -Winline -Wnested-externs"
-          tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes -Wpointer-arith"
-          tmp_CFLAGS="$tmp_CFLAGS -Wwrite-strings"
+          tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings"
           dnl -Wcast-align is a bit too annoying on all gcc versions ;-)
+          dnl Do not enable some warnings, when cross-compiling with a gcc
+          dnl older than 3.0, triggered on third party system headers.
+          if test "x$cross_compiling" != "xyes" ||
+            test "$compiler_num" -ge "300"; then
+            tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes"
+          fi
           if test "$compiler_num" -ge "207"; then
             dnl gcc 2.7 or later
             tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations"
@@ -796,6 +801,13 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
         if test "$compiler_num" -ge "300"; then
           dnl gcc 3.0 and later
           tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers"
+        else
+          dnl Disable some warnings, when cross-compiling with a gcc
+          dnl older than 3.0, triggered on third party system headers.
+          if test "x$cross_compiling" = "xyes"; then
+            tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes"
+            tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow"
+          fi
         fi
         ;;
         #
-- 
GitLab