Add compiler detection for several non-gcc compilers, & fix a gxlc++ compilation issue

This commit is contained in:
Brian Cox 2018-09-23 23:54:53 -07:00
parent 4b54324733
commit 84983b13d4
4 changed files with 196 additions and 108 deletions

View File

@ -15,6 +15,9 @@
/* Define to 1 if you have the <bits/signum.h> header file. */
#undef HAVE_BITS_SIGNUM_H
/* Uses the Clang compiler */
#undef HAVE_CLANG
/* Define to 1 if you have the <CommonCrypto/CommonDigest.h> header file. */
#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H
@ -45,6 +48,12 @@
/* Define to 1 if you have the `gethostname' function. */
#undef HAVE_GETHOSTNAME
/* Uses the aCC compiler */
#undef HAVE_HP_ACC
/* Uses the gxlc++ compiler */
#undef HAVE_IBM_GXLC
/* Define to 1 if you have the <iconv.h> header file. */
#undef HAVE_ICONV_H
@ -72,6 +81,9 @@
/* Define to 1 if you have the <openssl/sha.h> header file. */
#undef HAVE_OPENSSL_SHA_H
/* Uses the sunCC compiler */
#undef HAVE_ORACLE_SUNCC
/* Define to 1 if you have the `port_create' function. */
#undef HAVE_PORT_CREATE

210
configure vendored
View File

@ -747,13 +747,13 @@ ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_silent_rules
enable_dependency_tracking
enable_extrawarnings
enable_static
enable_debug
enable_coverage
enable_profiling
enable_urandom
enable_dependency_tracking
enable_commoncrypto
enable_iconv
enable_openssl
@ -1395,16 +1395,16 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
—-disable-extrawarnings do not compile with -Wextra warnings enabled
--enable-static compile static binaries
--enable-debug compile with debuging enabled
--enable-coverage enable code coverage
--enable-profiling enable profiling
--enable-urandom use /dev/urandom
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
--disable-commoncrypto Don't use CommonCrypto hash implementations (OSX only)
--enable-iconv Use iconv for locale-independent report and db files
--disable-openssl Don't link against OpenSSL libraries
@ -3517,85 +3517,8 @@ ac_config_headers="$ac_config_headers config.h"
CFLAGS=${CFLAGS:-"-O -pipe -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"}
CXXFLAGS=${CXXFLAGS:-"-O -pipe -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"}
# This is primarily to support old compilers that dont understand -Wextra
# Check whether --enable-extrawarnings was given.
if test "${enable_extrawarnings+set}" = set; then :
enableval=$enable_extrawarnings;
fi
if test "x$enable_extrawarnings" != "xno"
then
CFLAGS="${CFLAGS} -Wextra -Wno-unused-parameter"
CXXFLAGS="${CXXFLAGS} -Wextra -Wno-unused-parameter"
fi
# Check whether --enable-static was given.
if test "${enable_static+set}" = set; then :
enableval=$enable_static;
fi
if test "x$enable_static" = xyes
then LDFLAGS="${LDFLAGS} -static"
fi
# Check whether --enable-debug was given.
if test "${enable_debug+set}" = set; then :
enableval=$enable_debug;
fi
if test "x$enable_debug" = xyes
then
CFLAGS="${CFLAGS} -g"
CXXFLAGS="${CXXFLAGS} -g"
$as_echo "#define DEBUG 1" >>confdefs.h
else
$as_echo "#define NDEBUG 1" >>confdefs.h
fi
# Check whether --enable-coverage was given.
if test "${enable_coverage+set}" = set; then :
enableval=$enable_coverage;
fi
if test "x$enable_coverage" = xyes
then
CFLAGS="${CFLAGS} --coverage"
CXXFLAGS="${CXXFLAGS} --coverage"
LDFLAGS="${LDFLAGS} --coverage"
fi
# Check whether --enable-profiling was given.
if test "${enable_profiling+set}" = set; then :
enableval=$enable_profiling;
fi
if test "x$enable_profiling" = xyes
then
CFLAGS="${CFLAGS} -pg"
CXXFLAGS="${CXXFLAGS} -pg"
LDFLAGS="${LDFLAGS} -pg"
fi
# Check whether --enable-urandom was given.
if test "${enable_urandom+set}" = set; then :
enableval=$enable_urandom;
fi
if test "x$enable_urandom" = xyes
then
$as_echo "#define ENABLE_DEV_URANDOM 1" >>confdefs.h
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@ -5187,6 +5110,129 @@ $as_echo "#define HAVE_GCC 0" >>confdefs.h
fi
if test "x${CXX}" = "xclang++"; then
$as_echo "#define HAVE_CLANG 1" >>confdefs.h
else
$as_echo "#define HAVE_CLANG 0" >>confdefs.h
fi
if test "x${CXX}" = "xgxlc++"; then
$as_echo "#define HAVE_IBM_GXLC 1" >>confdefs.h
else
$as_echo "#define HAVE_IBM_GXLC 0" >>confdefs.h
fi
if test "x${CXX}" = "xsunCC"; then
$as_echo "#define HAVE_ORACLE_SUNCC 1" >>confdefs.h
else
$as_echo "#define HAVE_ORACLE_SUNCC 0" >>confdefs.h
fi
if test "x${CXX}" = "xaCC"; then
$as_echo "#define HAVE_HP_ACC 1" >>confdefs.h
else
$as_echo "#define HAVE_HP_ACC 0" >>confdefs.h
fi
CFLAGS=${CFLAGS:-"-O -pipe -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"}
CXXFLAGS=${CXXFLAGS:-"-O -pipe -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"}
# This is primarily to support old compilers that dont understand -Wextra
# Check whether --enable-extrawarnings was given.
if test "${enable_extrawarnings+set}" = set; then :
enableval=$enable_extrawarnings;
fi
if test "x$enable_extrawarnings" != "xno"
then
CFLAGS="${CFLAGS} -Wextra -Wno-unused-parameter"
CXXFLAGS="${CXXFLAGS} -Wextra -Wno-unused-parameter"
fi
# Check whether --enable-static was given.
if test "${enable_static+set}" = set; then :
enableval=$enable_static;
fi
if test "x$enable_static" = xyes
then LDFLAGS="${LDFLAGS} -static"
fi
# Check whether --enable-debug was given.
if test "${enable_debug+set}" = set; then :
enableval=$enable_debug;
fi
if test "x$enable_debug" = xyes
then
CFLAGS="${CFLAGS} -g"
CXXFLAGS="${CXXFLAGS} -g"
$as_echo "#define DEBUG 1" >>confdefs.h
else
$as_echo "#define NDEBUG 1" >>confdefs.h
fi
# Check whether --enable-coverage was given.
if test "${enable_coverage+set}" = set; then :
enableval=$enable_coverage;
fi
if test "x$enable_coverage" = xyes
then
CFLAGS="${CFLAGS} --coverage"
CXXFLAGS="${CXXFLAGS} --coverage"
LDFLAGS="${LDFLAGS} --coverage"
fi
# Check whether --enable-profiling was given.
if test "${enable_profiling+set}" = set; then :
enableval=$enable_profiling;
fi
if test "x$enable_profiling" = xyes
then
CFLAGS="${CFLAGS} -pg"
CXXFLAGS="${CXXFLAGS} -pg"
LDFLAGS="${LDFLAGS} -pg"
fi
# Check whether --enable-urandom was given.
if test "${enable_urandom+set}" = set; then :
enableval=$enable_urandom;
fi
if test "x$enable_urandom" = xyes
then
$as_echo "#define ENABLE_DEV_URANDOM 1" >>confdefs.h
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'

View File

@ -1,4 +1,4 @@
dnl Process this file with autoconf to produce a configure script.
zdnl Process this file with autoconf to produce a configure script.
dnl
dnl
@ -11,12 +11,63 @@ AM_CONFIG_HEADER(config.h)
AC_COPYRIGHT([The developer of the original code and/or files is Tripwire, Inc. Portions created by Tripwire, Inc. are copyright 2000-2018 Tripwire, Inc. Tripwire is a registered trademark of Tripwire, Inc. All rights reserved.])
AC_REVISION([$Revision: 2.4.3.8 $])
dnl ###############
dnl Setup defaults
dnl ###############
dnl ###################
dnl Checks for programs
dnl ###################
AC_PROG_CC([gcc clang suncc aCC gxlc xlC_r xlC cl.exe])
AC_PROG_CXX([g++ c++ clang++ sunCC aCC gxlc++ xlC_r xlC cl.exe])
AC_PROG_RANLIB
AC_PROG_YACC
AC_PROG_LN_S
AC_PROG_LN
AN_MAKEVAR([AR], [AC_PROG_AR])
AN_PROGRAM([ar], [AC_PROG_AR])
AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
AC_PROG_AR
AC_PATH_PROG(path_to_vi, vi)
AC_PATH_PROG(path_to_sendmail, sendmail, "", [$PATH:/usr/libexec])
if test "x${GXX}" != "x"; then
AC_DEFINE(HAVE_GCC, 1, [Uses the GNU gcc compiler])
else
AC_DEFINE(HAVE_GCC, 0, [Uses the GNU gcc compiler])
fi
if test "x${CXX}" = "xclang++"; then
AC_DEFINE(HAVE_CLANG, 1, [Uses the Clang compiler])
else
AC_DEFINE(HAVE_CLANG, 0, [Uses the Clang compiler])
fi
if test "x${CXX}" = "xgxlc++"; then
AC_DEFINE(HAVE_IBM_GXLC, 1, [Uses the gxlc++ compiler])
else
AC_DEFINE(HAVE_IBM_GXLC, 0, [Uses the gxlc++ compiler])
fi
if test "x${CXX}" = "xsunCC"; then
AC_DEFINE(HAVE_ORACLE_SUNCC, 1, [Uses the sunCC compiler])
else
AC_DEFINE(HAVE_ORACLE_SUNCC, 0, [Uses the sunCC compiler])
fi
if test "x${CXX}" = "xaCC"; then
AC_DEFINE(HAVE_HP_ACC, 1, [Uses the aCC compiler])
else
AC_DEFINE(HAVE_HP_ACC, 0, [Uses the aCC compiler])
fi
dnl #####################
dnl Set up base compiler flags
dnl #####################
CFLAGS=${CFLAGS:-"-O -pipe -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"}
CXXFLAGS=${CXXFLAGS:-"-O -pipe -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"}
dnl #####################
dnl Configuration options
dnl #####################
@ -66,27 +117,6 @@ then
AC_DEFINE(ENABLE_DEV_URANDOM, 1, [Enable use of /dev/urandom])
fi
dnl ###################
dnl Checks for programs
dnl ###################
AC_PROG_CC([gcc clang suncc aCC gxlc xlC_r xlC cl.exe])
AC_PROG_CXX([g++ c++ clang++ sunCC aCC gxlc++ xlC_r xlC cl.exe])
AC_PROG_RANLIB
AC_PROG_YACC
AC_PROG_LN_S
AC_PROG_LN
AN_MAKEVAR([AR], [AC_PROG_AR])
AN_PROGRAM([ar], [AC_PROG_AR])
AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
AC_PROG_AR
AC_PATH_PROG(path_to_vi, vi)
AC_PATH_PROG(path_to_sendmail, sendmail, "", [$PATH:/usr/libexec])
if test "x${GXX}" != "x"; then
AC_DEFINE(HAVE_GCC, 1, [Uses the GNU gcc compiler])
else
AC_DEFINE(HAVE_GCC, 0, [Uses the GNU gcc compiler])
fi
dnl #######################
dnl Checks for header files

View File

@ -127,7 +127,7 @@ protected:
// to be added to the exception class.
///////////////////////////////////////////////////////////////////////////////
#if HAVE_GCC
#if HAVE_GCC || HAVE_IBM_GXLC
# define TSS_BEGIN_EXCEPTION_EXPLICIT
#else
# define TSS_BEGIN_EXCEPTION_EXPLICIT explicit