FreeBSD: Enable libprocess build. Disables one test only on FreeBSD.
Review: https://reviews.apache.org/r/39635 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/e590f2fd Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/e590f2fd Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/e590f2fd Branch: refs/heads/master Commit: e590f2fd27e66a47ba5782e8f58604837da84134 Parents: 99c4f3a Author: David Forsythe <[email protected]> Authored: Mon Dec 14 10:24:27 2015 -0800 Committer: Ian Downes <[email protected]> Committed: Mon Dec 14 10:25:42 2015 -0800 ---------------------------------------------------------------------- 3rdparty/libprocess/3rdparty/Makefile.am | 12 ++++++++++-- 3rdparty/libprocess/configure.ac | 24 ++++++++++++++++++++--- 3rdparty/libprocess/src/config.hpp | 6 ++++++ 3rdparty/libprocess/src/tests/http_tests.cpp | 6 +++++- 4 files changed, 42 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/e590f2fd/3rdparty/libprocess/3rdparty/Makefile.am ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/3rdparty/Makefile.am b/3rdparty/libprocess/3rdparty/Makefile.am index 526ffc5..04d0fa3 100644 --- a/3rdparty/libprocess/3rdparty/Makefile.am +++ b/3rdparty/libprocess/3rdparty/Makefile.am @@ -125,6 +125,10 @@ endif # gets unarchived first. BUILT_SOURCES += $(nodist_libgmock_la_SOURCES) +GLOG_LDFLAGS = # Initialize to empty +if OS_FREEBSD + GLOG_LDFLAGS += "LDFLAGS='-L/usr/local/lib -lexecinfo'" +endif if WITH_BUNDLED_GLOG # NOTE: We explicitely set GTEST_CONFIG=no so that we don't attempt to @@ -133,7 +137,7 @@ if WITH_BUNDLED_GLOG # when building with clang). $(GLOG)/libglog.la: $(GLOG)-stamp cd $(GLOG) && ./configure GTEST_CONFIG=no $(CONFIGURE_ARGS) && \ - $(MAKE) $(AM_MAKEFLAGS) + $(MAKE) $(AM_MAKEFLAGS) $(GLOG_LDFLAGS) endif if HAS_GPERFTOOLS @@ -236,11 +240,15 @@ stout_tests_LDADD = \ libgmock.la \ $(LIBGLOG) \ $(LIBPROTOBUF) \ - -ldl \ -lsvn_subr-1 \ -lsvn_delta-1 \ -lapr-1 +# FreeBSD makes the dynamic linking interface available in libc +if !OS_FREEBSD + stout_tests_LDADD += -ldl +endif + # We use a check-local target for now to avoid the parallel test # runner that ships with newer versions of autotools. # See the following discussion for the workaround: http://git-wip-us.apache.org/repos/asf/mesos/blob/e590f2fd/3rdparty/libprocess/configure.ac ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/configure.ac b/3rdparty/libprocess/configure.ac index d7e0602..134f8ef 100644 --- a/3rdparty/libprocess/configure.ac +++ b/3rdparty/libprocess/configure.ac @@ -190,6 +190,9 @@ case "${target_os}" in darwin*) OS_NAME=darwin ;; + freebsd*) + OS_NAME=freebsd + ;; *) ;; esac @@ -204,6 +207,8 @@ fi # build stout/tests/proc_tests.cpp on Linux). AM_CONDITIONAL([OS_LINUX], [test "x$OS_NAME" = "xlinux"]) +AM_CONDITIONAL([OS_FREEBSD], [test "x$OS_NAME" = "xfreebsd"]) + # We use "-isystem" instead of "-I" to add Boost to the include search # path. This disables compiler warnings inside Boost headers since we # can't easily fix them. See MESOS-3799. @@ -823,8 +828,19 @@ case "$host_os" in # GTEST on OSX needs its own tr1 tuple. CXXFLAGS="$CXXFLAGS -DGTEST_USE_OWN_TR1_TUPLE=1 -DGTEST_LANG_CXX11" ;; + freebsd* ) + # If we're using clang, we need to pass -stdlib=libc++ too. + if test "x$ax_cv_cxx_compiler_vendor" = "xclang"; then + CXXFLAGS="$CXXFLAGS -stdlib=libc++" + fi + + # FreeBSD needs GTEST_HAS_PTHREAD for this version of gmock/gtest and + # _WITH_GETLINE for getline() + CXXFLAGS="$CXXFLAGS -DGTEST_HAS_PTHREAD -D_WITH_GETLINE" + ;; esac + # Also pass the flags to 3rdparty libraries. CONFIGURE_ARGS="$CONFIGURE_ARGS CXXFLAGS='$CXXFLAGS'" @@ -849,12 +865,14 @@ you can get away without it by doing --without-zlib. fi -AC_CHECK_LIB([dl], [dlopen], [], - [AC_MSG_ERROR([cannot find libdl +if test "x$OS_NAME" != "xfreebsd"; then + AC_CHECK_LIB([dl], [dlopen], [], + [AC_MSG_ERROR([cannot find libdl ------------------------------------------------------------------- libdl was not found, and is required for compilation. ------------------------------------------------------------------- -])]) + ])]) +fi AC_OUTPUT http://git-wip-us.apache.org/repos/asf/mesos/blob/e590f2fd/3rdparty/libprocess/src/config.hpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/src/config.hpp b/3rdparty/libprocess/src/config.hpp index 8444a60..1e0c2a5 100644 --- a/3rdparty/libprocess/src/config.hpp +++ b/3rdparty/libprocess/src/config.hpp @@ -47,4 +47,10 @@ #endif #endif /* __linux__ */ +#ifdef __FreeBSD__ +#ifndef SOL_TCP +#define SOL_TCP IPPROTO_TCP +#endif +#endif /* __FreeBSD__ */ + #endif // __CONFIG_HPP__ http://git-wip-us.apache.org/repos/asf/mesos/blob/e590f2fd/3rdparty/libprocess/src/tests/http_tests.cpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/src/tests/http_tests.cpp b/3rdparty/libprocess/src/tests/http_tests.cpp index 132e3c5..1926150 100644 --- a/3rdparty/libprocess/src/tests/http_tests.cpp +++ b/3rdparty/libprocess/src/tests/http_tests.cpp @@ -908,8 +908,12 @@ TEST(HTTPConnectionTest, ClosingRequest) AWAIT_READY(connection.disconnected()); } - +// TODO(dforsyth): The test suite doesn't see the second call on FreeBSD +#ifndef __FreeBSD__ TEST(HTTPConnectionTest, ClosingResponse) +#else +TEST(HTTPConnectionTest, DISABLED_ClosingResponse) +#endif { Http http;
