You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ch...@apache.org on 2018/05/09 19:05:52 UTC
[5/6] mesos git commit: Removed the OpenSSL dependency for building
gRPC in Mesos.
Removed the OpenSSL dependency for building gRPC in Mesos.
When the SSL build feature is disabled, Mesos now builds
`libgrpc_unsecure` and `libgrpc++_unsecure` instead of `libgrpc` and
`libgrpc++`, so the SSL headers and libraries are no longer required.
Review: https://reviews.apache.org/r/66996
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b74821cd
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b74821cd
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b74821cd
Branch: refs/heads/master
Commit: b74821cd43d3616e69393aa15d1a7cef98979350
Parents: 04313d0
Author: Chun-Hung Hsiao <ch...@mesosphere.io>
Authored: Tue Apr 24 15:05:37 2018 -0700
Committer: Chun-Hung Hsiao <ch...@mesosphere.io>
Committed: Wed May 9 12:05:13 2018 -0700
----------------------------------------------------------------------
3rdparty/Makefile.am | 29 ++++++++++++++++++-------
configure.ac | 14 +++++-------
src/Makefile.am | 13 ++++++-----
src/python/native_common/ext_modules.py.in | 16 ++++++--------
4 files changed, 41 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/b74821cd/3rdparty/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/Makefile.am b/3rdparty/Makefile.am
index 6740940..062df18 100644
--- a/3rdparty/Makefile.am
+++ b/3rdparty/Makefile.am
@@ -322,26 +322,39 @@ PROTOC = @PROTOCOMPILER@
endif
if ENABLE_GRPC
+if !ENABLE_SSL
+GRPC_VARIANT = _unsecure
+endif
+
if WITH_BUNDLED_GRPC
-LIB_GRPC = $(GRPC)/libs/opt/libgrpc++.a \
- $(GRPC)/libs/opt/libgrpc.a \
+LIB_GRPC = $(GRPC)/libs/opt/libgrpc++$(GRPC_VARIANT).a \
+ $(GRPC)/libs/opt/libgrpc$(GRPC_VARIANT).a \
$(GRPC)/libs/opt/libgpr.a
$(LIB_GRPC): $(GRPC)-build-stamp
+# NOTE: We the include flags through the `CPPFLAGS` environment variable rather
+# than the command line because gRPC uses target-specific assignments to append
+# flags to `CPPFLAGS`, which will be overwritten by command line arguments. See:
+# https://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html
$(GRPC)-build-stamp: $(GRPC)-stamp \
$(PROTOBUF)-build-stamp
cd $(GRPC) && \
CPPFLAGS="$(PROTOBUF_INCLUDE_FLAGS) \
$(SSL_INCLUDE_FLAGS) \
$(ZLIB_INCLUDE_FLAGS)" \
- LDFLAGS="$(PROTOBUF_LINKER_FLAGS) \
- $(SSL_LINKER_FLAGS) \
- $(ZLIB_LINKER_FLAGS)" \
$(MAKE) $(AM_MAKEFLAGS) \
- HAS_PKG_CONFIG=false \
- NO_PROTOC=false \
- PROTOC=$(PROTOC)
+ $(LIB_GRPC:%=$(abs_builddir)/%) \
+ CC="$(CC)" \
+ CXX="$(CXX)" \
+ LD="$(CC)" \
+ LDXX="$(CXX)" \
+ LDFLAGS="$(PROTOBUF_LINKER_FLAGS) \
+ $(SSL_LINKER_FLAGS) \
+ $(ZLIB_LINKER_FLAGS)" \
+ HAS_PKG_CONFIG=false \
+ NO_PROTOC=false \
+ PROTOC="$(PROTOC)"
touch $@
ALL_LOCAL += $(LIB_GRPC)
http://git-wip-us.apache.org/repos/asf/mesos/blob/b74821cd/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 429797c..6d9c8ce 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2067,9 +2067,13 @@ if test "x$enable_grpc" = "xyes"; then
GRPCPREFIX="/usr"
fi
+ if test "x$enable_ssl" = "xno"; then
+ GRPC_VARIANT="_unsecure"
+ fi
+
# Check if headers and library were located.
saved_LIBS="$LIBS"
- LIBS="-lgrpc++ -lgrpc -lgpr $LIBS"
+ LIBS="-lgrpc++$GRPC_VARIANT -lgrpc$GRPC_VARIANT -lgpr $LIBS"
AC_LANG_PUSH([C++])
AC_CHECK_HEADERS([grpcpp/grpcpp.h],
[AC_LINK_IFELSE(
@@ -2108,14 +2112,6 @@ correct if you are already doing this.
])
fi
else
- if test "x$found_ssl" != "xyes"; then
- AC_MSG_ERROR([cannot find libssl
--------------------------------------------------------------------
-libssl is required for gRPC to build.
--------------------------------------------------------------------
- ])
- fi
-
with_bundled_grpc=yes
fi
http://git-wip-us.apache.org/repos/asf/mesos/blob/b74821cd/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index 7e91681..c08ac6e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -171,15 +171,18 @@ LDADD += -lglog
endif
if ENABLE_GRPC
+if !ENABLE_SSL
+GRPC_VARIANT = _unsecure
+endif
+
if WITH_BUNDLED_GRPC
MESOS_CPPFLAGS += -I../$(GRPC)/include
-LIB_GRPC = ../$(GRPC)/libs/opt/libgrpc++.a \
- ../$(GRPC)/libs/opt/libgrpc.a \
- ../$(GRPC)/libs/opt/libgpr.a \
- -lssl -lcrypto
+LIB_GRPC = ../$(GRPC)/libs/opt/libgrpc++$(GRPC_VARIANT).a \
+ ../$(GRPC)/libs/opt/libgrpc$(GRPC_VARIANT).a \
+ ../$(GRPC)/libs/opt/libgpr.a
GRPC_CPP_PLUGIN = ../$(GRPC)/bins/opt/grpc_cpp_plugin
else
-LIB_GRPC = -lgrpc++ -lgrpc -lgpr -lssl -lcrypto
+LIB_GRPC = -lgrpc++$(GRPC_VARIANT) -lgrpc$(GRPC_VARIANT) -lgpr
GRPC_CPP_PLUGIN = @GRPC_CXX_PLUGIN@
endif
endif
http://git-wip-us.apache.org/repos/asf/mesos/blob/b74821cd/src/python/native_common/ext_modules.py.in
----------------------------------------------------------------------
diff --git a/src/python/native_common/ext_modules.py.in b/src/python/native_common/ext_modules.py.in
index 87387fd..dc4d91a 100644
--- a/src/python/native_common/ext_modules.py.in
+++ b/src/python/native_common/ext_modules.py.in
@@ -129,28 +129,26 @@ def _create_module(module_name):
# only if gRPC is enabled.
if '@ENABLE_GRPC_FALSE@' == '#':
grpc = os.path.join('3rdparty', 'grpc-1.10.0')
- libgrpcxx = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc++.a')
- libgrpc = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc.a')
+ grpc_variant = '_unsecure' if '@ENABLE_SSL_TRUE@' == '#' else ''
+ libgrpcpp = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc++%s.a' % grpc_variant)
+ libgrpc = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc%s.a' % grpc_variant)
libgpr = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgpr.a')
- if os.path.exists(libgrpcxx):
- EXTRA_OBJECTS.append(libgrpcxx)
+ if os.path.exists(libgrpcpp):
+ EXTRA_OBJECTS.append(libgrpcpp)
else:
- EXTRA_OBJECTS.append('-lgrpc++')
+ EXTRA_OBJECTS.append('-lgrpc++%s' % grpc_variant)
if os.path.exists(libgrpc):
EXTRA_OBJECTS.append(libgrpc)
else:
- EXTRA_OBJECTS.append('-lgrpc')
+ EXTRA_OBJECTS.append('-lgrpc%s' % grpc_variant)
if os.path.exists(libgpr):
EXTRA_OBJECTS.append(libgpr)
else:
EXTRA_OBJECTS.append('-lgpr')
- EXTRA_OBJECTS.append('-lssl')
- EXTRA_OBJECTS.append('-lcrypto')
-
# OSX uses a different linker (llvm-ld) and doesn't support --as-needed
# TODO(SteveNiemitz): Feature detect --as-needed instead of looking at