Commit fa6eb99b authored by JINMEI Tatuya's avatar JINMEI Tatuya
Browse files

minimal fixes for SunStudio support


git-svn-id: svn://bind10.isc.org/svn/bind10/branches/trac251@2227 e5f2f494-b856-4b98-b285-d166d9295462
parent 121930a3
......@@ -9,12 +9,20 @@ AC_CONFIG_HEADERS([config.h])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_LIBTOOL
AM_CONDITIONAL(USE_GXX, test "X${GXX}" = "Xyes")
# Use C++ language
AC_LANG_CPLUSPLUS
# OS dependent compiler flags
case "$host" in
*-solaris*)
CPPFLAGS="$CPPFLAGS -D_XPG4_2 -D__EXTENSIONS__"
;;
esac
m4_define([_AM_PYTHON_INTERPRETER_LIST], [python python3 python3.1])
AC_ARG_WITH([pythonpath],
AC_HELP_STRING([--with-pythonpath=PATH],
......@@ -98,16 +106,16 @@ AC_SUBST(PYTHON_LIB)
# specify the default warning flags in CXXFLAGS and let specific modules
# "override" the default.
#
B10_CXXFLAGS=
B10_CXXFLAGS=-g
if test "X$GCC" = "Xyes"; then
B10_CXXFLAGS="-g -Wall -Wextra -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare"
werror_ok=0
if test "X$GXX" = "Xyes"; then
B10_CXXFLAGS="-Wall -Wextra -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare"
UNUSED_PARAM_ATTRIBUTE='__attribute__((unused))'
# Certain versions of gcc (g++) have a bug that incorrectly warns about
# the use of anonymous name spaces even if they're closed in a single
# translation unit. For these versions we have to disable -Werror.
werror_ok=0
CXXFLAGS_SAVED="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $B10_CXXFLAGS -Werror"
AC_MSG_CHECKING(for in-TU anonymous namespace breakage)
......@@ -118,13 +126,13 @@ namespace isc {class Bar {Foo foo_;};} ],,
B10_CXXFLAGS="$B10_CXXFLAGS -Werror"],
[AC_MSG_RESULT(yes)])
CXXFLAGS="$CXXFLAGS_SAVED"
fi dnl GCC = yes
fi dnl GXX = yes
AM_CONDITIONAL(GCC_WERROR_OK, test $werror_ok = 1)
AC_DEFINE_UNQUOTED(UNUSED_PARAM, $UNUSED_PARAM_ATTRIBUTE, Define to compiler keyword indicating a function argument is intentionally unused)
# produce PIC unless we disable shared libraries. need this for python bindings.
if test $enable_shared != "no" -a "X$GCC" = "Xyes"; then
if test $enable_shared != "no" -a "X$GXX" = "Xyes"; then
B10_CXXFLAGS="$B10_CXXFLAGS -fPIC"
fi
......@@ -364,7 +372,7 @@ fi
# run time performance. Hpefully we can find a better solution or the ASIO
# code will be updated by the time we really need it.
AC_CHECK_HEADERS(sys/devpoll.h, ac_cv_have_devpoll=yes, ac_cv_have_devpoll=no)
if test "X$ac_cv_have_devpoll" = "Xyes" -a "X$GCC" = "Xyes"; then
if test "X$ac_cv_have_devpoll" = "Xyes" -a "X$GXX" = "Xyes"; then
CPPFLAGS="$CPPFLAGS -DASIO_DISABLE_DEV_POLL=1"
fi
......
......@@ -36,7 +36,10 @@ lib_LIBRARIES = libasio_link.a
libasio_link_a_SOURCES = asio_link.cc asio_link.h
# Note: the ordering matters: -Wno-... must follow -Wextra (defined in
# B10_CXXFLAGS)
libasio_link_a_CXXFLAGS = $(AM_CXXFLAGS) -Wno-unused-parameter
libasio_link_a_CXXFLAGS = $(AM_CXXFLAGS)
if USE_GXX
libasio_link_a_CXXFLAGS += -Wno-unused-parameter
endif
libasio_link_a_CPPFLAGS = $(AM_CPPFLAGS)
BUILT_SOURCES = spec_config.h
......
......@@ -16,6 +16,7 @@
#include <config.h>
#include <unistd.h>
#include <asio.hpp>
#include <boost/bind.hpp>
......
......@@ -24,8 +24,8 @@ struct IOServiceImpl;
class IOService {
public:
IOService(AuthSrv* auth_server, const char* port, bool use_ipv4,
bool use_ipv6);
IOService(AuthSrv* auth_server, const char* const port, const bool use_ipv4,
const bool use_ipv6);
~IOService();
void run();
void stop();
......
......@@ -19,6 +19,8 @@
#include <sys/time.h> // for gettimeofday
#include <sys/socket.h> // networking functions and definitions on FreeBSD
#include <unistd.h>
#include <string>
#include <iostream>
......
......@@ -6,7 +6,9 @@ AM_CXXFLAGS = $(B10_CXXFLAGS)
# error. Unfortunately there doesn't seem to be an easy way to selectively
# avoid the error. As a short term workaround we suppress this warning
# for the entire this module. See also src/bin/auth/Makefile.am.
if USE_GXX
AM_CXXFLAGS += -Wno-unused-parameter
endif
lib_LIBRARIES = libcc.a
libcc_a_SOURCES = data.cc data.h session.cc session.h
......
......@@ -25,6 +25,7 @@
// A middle term solution is to generalize our local wrapper interface
// (currently only available for the auth server), where all such portability
// issues are hidden, and to have other modules use the wrapper.
#include <unistd.h>
#include <asio.hpp>
#include <asio/error_code.hpp>
#include <asio/system_error.hpp>
......
......@@ -923,7 +923,7 @@ SectionIterator<T>::operator*() const {
template <typename T>
const T*
SectionIterator<T>::operator->() const {
return (impl_->it_.operator->());
return (&(operator*()));
}
template <typename T>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment