Repository: incubator-impala
Updated Branches:
  refs/heads/master 05b19bb84 -> 8cab36cf6


IMPALA-3979: Fix dynamic linking for Impala

When building Impala, the user can choose between two different
build modes: static and dynamically linked libraries. The first
one is used for release builds, while the latter one is used
mainly locally for developers to shorten build times.

However, for some time now, the shared build has been broken in
some configurations. This patch fixes this issue. The main
solution is to move the webserver into the Util library and to
remove the manual linking of Util into the error-utils-test.

Change-Id: I2fb1efd600bfaf17de730186fc80a0dbd976a049
Reviewed-on: http://gerrit.cloudera.org:8080/4108
Tested-by: Internal Jenkins
Reviewed-by: Tim Armstrong <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/8cab36cf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/8cab36cf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/8cab36cf

Branch: refs/heads/master
Commit: 8cab36cf61aa315bc8d8fffa24ce73f9f64227ba
Parents: 05b19bb
Author: Martin Grund <[email protected]>
Authored: Wed Aug 24 05:26:03 2016 +0000
Committer: Tim Armstrong <[email protected]>
Committed: Thu Aug 25 15:35:25 2016 +0000

----------------------------------------------------------------------
 be/CMakeLists.txt          | 12 +++++++-----
 be/src/util/CMakeLists.txt |  8 +-------
 2 files changed, 8 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/8cab36cf/be/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt
index 0bbe4f4..6aff0b3 100644
--- a/be/CMakeLists.txt
+++ b/be/CMakeLists.txt
@@ -275,7 +275,6 @@ set (IMPALA_LINK_LIBS
   ThriftSaslTransport
   Udf
   Util
-  Webserver
   ${WL_END_GROUP}
 )
 
@@ -294,7 +293,6 @@ if (BUILD_SHARED_LIBS)
     Scheduling
     Catalog
     ResourceBroker
-    Webserver
     ImpalaThrift
     GlobalFlags
     Common
@@ -302,8 +300,7 @@ if (BUILD_SHARED_LIBS)
     )
 endif ()
 
-# Add all external dependencies. They should come after the impala libs.
-set (IMPALA_LINK_LIBS ${IMPALA_LINK_LIBS}
+set (IMPALA_DEPENDENCIES
   ${SNAPPY_STATIC_LIB}
   ${LZ4_STATIC_LIB}
   ${RE2_STATIC_LIB}
@@ -314,6 +311,7 @@ set (IMPALA_LINK_LIBS ${IMPALA_LINK_LIBS}
   ${LDAP_LIBRARY}
   ${LBER_LIBRARY}
   ThriftSaslTransport
+  ${OPENSSL_LIBS}
   gutil
   glogstatic
   gflagsstatic
@@ -324,7 +322,11 @@ set (IMPALA_LINK_LIBS ${IMPALA_LINK_LIBS}
   ${LIBBZ2}
   ${AVRO_STATIC_LIB}
   ${JAVA_JVM_LIBRARY}
-  kudu_client
+  kudu_client)
+
+# Add all external dependencies. They should come after the impala libs.
+set (IMPALA_LINK_LIBS ${IMPALA_LINK_LIBS}
+  ${IMPALA_DEPENDENCIES}
   -lrt
   -ldl # Needed for LLVM
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/8cab36cf/be/src/util/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/be/src/util/CMakeLists.txt b/be/src/util/CMakeLists.txt
index dc2df01..da682f4 100644
--- a/be/src/util/CMakeLists.txt
+++ b/be/src/util/CMakeLists.txt
@@ -83,14 +83,11 @@ add_library(Util
   time.cc
   tuple-row-compare.cc
   url-parser.cc
-)
-add_dependencies(Util thrift-deps gen_ir_descriptions)
-
-add_library(Webserver STATIC
   ${SQUEASEL_SRC_DIR}/squeasel.c
   webserver.cc
   ${MUSTACHE_SRC_DIR}/mustache.cc
 )
+add_dependencies(Util thrift-deps gen_ir_descriptions)
 
 # Squeasel requires C99 compatibility to build.
 SET_SOURCE_FILES_PROPERTIES(${SQUEASEL_SRC_DIR}/squeasel.c
@@ -101,8 +98,6 @@ add_library(loggingsupport SHARED
   logging-support.cc
 )
 
-target_link_libraries(Webserver pthread dl Util ${OPENSSL_LIBS})
-
 add_executable(parquet-reader parquet-reader.cc)
 
 target_link_libraries(parquet-reader ${IMPALA_LINK_LIBS})
@@ -132,7 +127,6 @@ ADD_BE_TEST(redactor-config-parser-test)
 ADD_BE_TEST(redactor-test)
 ADD_BE_TEST(redactor-unconfigured-test)
 ADD_BE_TEST(error-util-test)
-target_link_libraries(error-util-test Util)
 ADD_BE_TEST(proc-info-test)
 ADD_BE_TEST(lru-cache-test)
 ADD_BE_TEST(filesystem-util-test)

Reply via email to