From 1b246eecfe77425622d5e249f71b4b2a73fa97a8 Mon Sep 17 00:00:00 2001
From: Yang Tse <yangsita@gmail.com>
Date: Wed, 8 Oct 2008 02:29:13 +0000
Subject: [PATCH] Initial attempt to detect HP C compiler

---
 ares/m4/cares-compilers.m4 | 37 ++++++++++++++++++++++++++++++++++++-
 m4/curl-compilers.m4       | 37 ++++++++++++++++++++++++++++++++++++-
 2 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/ares/m4/cares-compilers.m4 b/ares/m4/cares-compilers.m4
index d2e421d240..db711c3314 100644
--- a/ares/m4/cares-compilers.m4
+++ b/ares/m4/cares-compilers.m4
@@ -16,7 +16,7 @@
 #***************************************************************************
 
 # File version for 'aclocal' use. Keep it a single number.
-# serial 3
+# serial 6
 
 
 dnl CARES_CHECK_COMPILER
@@ -36,6 +36,7 @@ AC_DEFUN([CARES_CHECK_COMPILER], [
   flags_opt_off="unknown"
   #
   CARES_CHECK_COMPILER_DEC
+  CARES_CHECK_COMPILER_HP
   CARES_CHECK_COMPILER_IBM
   CARES_CHECK_COMPILER_INTEL
   CARES_CHECK_COMPILER_GNU
@@ -118,6 +119,28 @@ AC_DEFUN([CARES_CHECK_COMPILER_GNU], [
 ])
 
 
+dnl CARES_CHECK_COMPILER_HP
+dnl -------------------------------------------------
+dnl Verify if the C compiler being used is HP's.
+
+AC_DEFUN([CARES_CHECK_COMPILER_HP], [
+  AC_MSG_CHECKING([whether we are using the HP C compiler])
+  CURL_CHECK_DEF([__HP_cc], [], [silent])
+  if test "$curl_cv_have_def___HP_cc" = "yes"; then
+    AC_MSG_RESULT([yes])
+    compiler_id="HPC"
+    flags_dbg_all="-g -s"
+    flags_dbg_yes="-g"
+    flags_dbg_off="-s"
+    flags_opt_all="-O +O0 +O1 +O2 +O3 +O4"
+    flags_opt_yes="+O2"
+    flags_opt_off="+O0"
+  else
+    AC_MSG_RESULT([no])
+  fi
+])
+
+
 dnl CARES_CHECK_COMPILER_IBM
 dnl -------------------------------------------------
 dnl Verify if the C compiler being used is IBM's.
@@ -209,6 +232,11 @@ AC_DEFUN([CARES_SET_COMPILER_BASIC_OPTS], [
     CFLAGS="$CFLAGS -msg_fatal toofewargs,toomanyargs"
   fi
   #
+  if test "$compiler_id" = "HPC"; then
+    dnl Disallow run-time dereferencing of null pointers
+    CFLAGS="$CFLAGS -z"
+  fi
+  #
   if test "$compiler_id" = "IBMC"; then
     dnl Ensure that compiler optimizations are always thread-safe.
     CFLAGS="$CFLAGS -qthreaded"
@@ -386,6 +414,13 @@ AC_DEFUN([CARES_SET_COMPILER_WARNING_OPTS], [
     fi
   fi
   #
+  if test "$compiler_id" = "HPC"; then
+    if test "$want_warnings" = "yes"; then
+      dnl Issue all warnings
+      CFLAGS="$CFLAGS +w1"
+    fi
+  fi
+  #
   if test "$compiler_id" = "ICC_unix"; then
     if test "$want_warnings" = "yes"; then
       if test "$compiler_num" -gt "600"; then
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index ca28914004..ea10ceedbd 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
@@ -22,7 +22,7 @@
 #***************************************************************************
 
 # File version for 'aclocal' use. Keep it a single number.
-# serial 2
+# serial 5
 
 
 dnl CURL_CHECK_COMPILER
@@ -42,6 +42,7 @@ AC_DEFUN([CURL_CHECK_COMPILER], [
   flags_opt_off="unknown"
   #
   CURL_CHECK_COMPILER_DEC
+  CURL_CHECK_COMPILER_HP
   CURL_CHECK_COMPILER_IBM
   CURL_CHECK_COMPILER_INTEL
   CURL_CHECK_COMPILER_GNU
@@ -124,6 +125,28 @@ AC_DEFUN([CURL_CHECK_COMPILER_GNU], [
 ])
 
 
+dnl CURL_CHECK_COMPILER_HP
+dnl -------------------------------------------------
+dnl Verify if the C compiler being used is HP's.
+
+AC_DEFUN([CURL_CHECK_COMPILER_HP], [
+  AC_MSG_CHECKING([whether we are using the HP C compiler])
+  CURL_CHECK_DEF([__HP_cc], [], [silent])
+  if test "$curl_cv_have_def___HP_cc" = "yes"; then
+    AC_MSG_RESULT([yes])
+    compiler_id="HPC"
+    flags_dbg_all="-g -s"
+    flags_dbg_yes="-g"
+    flags_dbg_off="-s"
+    flags_opt_all="-O +O0 +O1 +O2 +O3 +O4"
+    flags_opt_yes="+O2"
+    flags_opt_off="+O0"
+  else
+    AC_MSG_RESULT([no])
+  fi
+])
+
+
 dnl CURL_CHECK_COMPILER_IBM
 dnl -------------------------------------------------
 dnl Verify if the C compiler being used is IBM's.
@@ -215,6 +238,11 @@ AC_DEFUN([CURL_SET_COMPILER_BASIC_OPTS], [
     CFLAGS="$CFLAGS -msg_fatal toofewargs,toomanyargs"
   fi
   #
+  if test "$compiler_id" = "HPC"; then
+    dnl Disallow run-time dereferencing of null pointers
+    CFLAGS="$CFLAGS -z"
+  fi
+  #
   if test "$compiler_id" = "IBMC"; then
     dnl Ensure that compiler optimizations are always thread-safe.
     CFLAGS="$CFLAGS -qthreaded"
@@ -392,6 +420,13 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
     fi
   fi
   #
+  if test "$compiler_id" = "HPC"; then
+    if test "$want_warnings" = "yes"; then
+      dnl Issue all warnings
+      CFLAGS="$CFLAGS +w1"
+    fi
+  fi
+  #
   if test "$compiler_id" = "ICC_unix"; then
     if test "$want_warnings" = "yes"; then
       if test "$compiler_num" -gt "600"; then
-- 
GitLab