dnl Autoconf configure script for GDB server.
-dnl Copyright (C) 2000-2014 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2015 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
AM_MAINTAINER_MODE
AC_PROG_CC
+AC_PROG_CXX
AC_GNU_SOURCE
AC_SYS_LARGEFILE
AC_HEADER_STDC
+# See if we are building with C++, and substitute COMPILER.
+GDB_AC_BUILD_WITH_CXX
+
# Set the 'development' global.
. $srcdir/../../bfd/development.sh
AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
AC_PROG_MAKE_SET
+gnulib_extra_configure_args=
+# If large-file support is disabled, make sure gnulib does the same.
+if test "$enable_largefile" = no; then
+gnulib_extra_configure_args="$gnulib_extra_configure_args --disable-largefile"
+fi
+
# Configure gnulib. We can't use AC_CONFIG_SUBDIRS as that'd expect
# to find the the source subdir to be configured directly under
# gdbserver/. We need to build gnulib under some other directory not
# "gnulib", to avoid the problem of both GDB and GDBserver wanting to
# build it in the same directory, when building in the source dir.
-ACX_CONFIGURE_DIR(["../gnulib"], ["build-gnulib-gdbserver"])
+ACX_CONFIGURE_DIR(["../gnulib"], ["build-gnulib-gdbserver"],
+ ["$gnulib_extra_configure_args"])
ACX_CONFIGURE_DIR(["../../libiberty"], ["build-libiberty-gdbserver"])
fcntl.h signal.h sys/file.h dnl
sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
netinet/tcp.h arpa/inet.h)
-AC_CHECK_FUNCS(pread pwrite pread64 readlink)
+AC_CHECK_FUNCS(getauxval pread pwrite pread64 setns)
GDB_AC_COMMON
+# Check the return and argument types of ptrace.
+GDB_AC_PTRACE
+
# Check for UST
ustlibs=""
ustinc=""
esac])
# Enable -Werror by default when using gcc. Turn it off for releases.
-if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" && $development; then
+if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" \
+ && test x"$enable_build_with_cxx" != x"yes" \
+ && $development; then
ERROR_ON_WARNING=yes
fi
WERROR_CFLAGS="-Werror"
fi
-build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
+build_warnings="-Wall -Wpointer-arith \
-Wformat-nonliteral -Wno-char-subscripts -Wempty-body"
+# Now add in C and C++ specific options, depending on mode.
+if test "$enable_build_with_cxx" = "yes"; then
+ build_warnings="$build_warnings -Wno-sign-compare -Wno-write-strings \
+-Wno-narrowing"
+else
+ build_warnings="$build_warnings -Wdeclaration-after-statement"
+fi
+
+# The set of warnings supported by a C++ compiler is not the same as
+# of the C compiler.
+if test "$enable_build_with_cxx" = "yes"; then
+ AC_LANG_PUSH([C++])
+fi
+
WARN_CFLAGS=""
if test "x$GCC" = xyes
then
for w in ${build_warnings}; do
case $w in
-Werr*) WERROR_CFLAGS=-Werror ;;
- *) # Check that GCC accepts it
+ *)
+ # Check whether GCC accepts it.
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $w"
+ saved_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS $w"
AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
CFLAGS="$saved_CFLAGS"
+ CXXFLAGS="$saved_CXXFLAGS"
esac
done
AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
AC_SUBST(WARN_CFLAGS)
AC_SUBST(WERROR_CFLAGS)
+if test "$enable_build_with_cxx" = "yes"; then
+ AC_LANG_POP([C++])
+fi
+
dnl dladdr is glibc-specific. It is used by thread-db.c but only for
dnl debugging messages. It lives in -ldl which is handled below so we don't
dnl use AC_CHECK_LIB (or AC_SEARCH_LIBS) here. Instead we just temporarily
AC_CHECK_FUNCS(dladdr)
LIBS="$old_LIBS"
+libiberty_INIT
+
AC_CHECK_DECLS([strerror, perror, vasprintf, vsnprintf])
+AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
+
AC_CHECK_TYPES(socklen_t, [], [],
[#include <sys/types.h>
#include <sys/socket.h>
. ${srcdir}/configure.srv
+# Add in the common host objects.
+. ${srcdir}/../common/common.host
+srv_host_obs="$common_host_obs"
+
if test "${srv_mingwce}" = "yes"; then
LIBS="$LIBS -lws2"
elif test "${srv_mingw}" = "yes"; then
BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
+ BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t)
fi
done
fi
-GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
+GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles $srv_host_obs"
GDBSERVER_LIBS="$srv_libs"
dnl Check whether the target supports __sync_*_compare_and_swap.