From ceecb2c49cfc9705cfce16c809fdb2ae1437b28e Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Mon, 30 Apr 2018 17:25:44 -0400 Subject: [PATCH] Remove indirect dependency on system ZLIB (#26888) * Remove indirect dependency on system ZLIB - build LLVM without ZLIB support - use the bundled ZLIB for libgit * backport bundled zlib patch Ref #26888 (cherry picked from commit 8770821e88b7033c631cbd8cf0598f6d121e143b) --- deps/libgit2.mk | 10 ++++- deps/llvm.mk | 1 + deps/patches/libgit2-bundled_zlib.patch | 55 +++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 deps/patches/libgit2-bundled_zlib.patch diff --git a/deps/libgit2.mk b/deps/libgit2.mk index 129fbe610fa17..afdc13d46e36a 100644 --- a/deps/libgit2.mk +++ b/deps/libgit2.mk @@ -18,7 +18,7 @@ $(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured: | $(build_prefix)/manifest/curl endif endif -LIBGIT2_OPTS := $(CMAKE_COMMON) -DCMAKE_BUILD_TYPE=Release -DTHREADSAFE=ON +LIBGIT2_OPTS := $(CMAKE_COMMON) -DCMAKE_BUILD_TYPE=Release -DTHREADSAFE=ON -DUSE_BUNDLED_ZLIB=ON ifeq ($(OS),WINNT) LIBGIT2_OPTS += -DWIN32=ON -DMINGW=ON ifneq ($(ARCH),x86_64) @@ -104,6 +104,11 @@ $(LIBGIT2_SRC_PATH)/libgit2-remote-push-NULL.patch-applied: $(LIBGIT2_SRC_PATH)/ patch -p1 -f < $(SRCDIR)/patches/libgit2-remote-push-NULL.patch echo 1 > $@ +$(LIBGIT2_SRC_PATH)/libgit2-bundled_zlib.patch-applied: $(LIBGIT2_SRC_PATH)/source-extracted | $(LIBGIT2_SRC_PATH)/libgit2-remote-push-NULL.patch-applied + cd $(LIBGIT2_SRC_PATH) && \ + patch -p1 -f < $(SRCDIR)/patches/libgit2-bundled_zlib.patch + echo 1 > $@ + $(build_datarootdir)/julia/cert.pem: $(CERTFILE) mkdir -p $(build_datarootdir)/julia -cp $(CERTFILE) $@ @@ -116,7 +121,8 @@ $(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured: \ $(LIBGIT2_SRC_PATH)/libgit2-mbedtls-verify.patch-applied \ $(LIBGIT2_SRC_PATH)/libgit2-gitconfig-symlink.patch-applied \ $(LIBGIT2_SRC_PATH)/libgit2-free-config.patch-applied \ - $(LIBGIT2_SRC_PATH)/libgit2-remote-push-NULL.patch-applied + $(LIBGIT2_SRC_PATH)/libgit2-remote-push-NULL.patch-applied \ + $(LIBGIT2_SRC_PATH)/libgit2-bundled_zlib.patch-applied ifneq ($(CERTFILE),) $(BUILDDIR)/$(LIBGIT2_SRC_DIR)/build-configured: $(build_datarootdir)/julia/cert.pem diff --git a/deps/llvm.mk b/deps/llvm.mk index 34d6f47eab4d9..b4925a2687871 100644 --- a/deps/llvm.mk +++ b/deps/llvm.mk @@ -66,6 +66,7 @@ LLVM_CXXFLAGS += $(CXXFLAGS) LLVM_CPPFLAGS += $(CPPFLAGS) LLVM_LDFLAGS += $(LDFLAGS) LLVM_CMAKE += -DLLVM_TARGETS_TO_BUILD:STRING="$(LLVM_TARGETS)" -DCMAKE_BUILD_TYPE="$(LLVM_CMAKE_BUILDTYPE)" +LLVM_CMAKE += -DLLVM_ENABLE_ZLIB=OFF LLVM_CMAKE += -DLLVM_TOOLS_INSTALL_DIR=$(shell $(JULIAHOME)/contrib/relative_path.sh $(build_prefix) $(build_depsbindir)) LLVM_CMAKE += -DLLVM_BINDINGS_LIST="" -DLLVM_INCLUDE_DOCS=Off -DLLVM_ENABLE_TERMINFO=Off -DHAVE_HISTEDIT_H=Off -DHAVE_LIBEDIT=Off LLVM_FLAGS += --disable-profiling --enable-static --enable-targets=$(LLVM_TARGETS) diff --git a/deps/patches/libgit2-bundled_zlib.patch b/deps/patches/libgit2-bundled_zlib.patch new file mode 100644 index 0000000000000..9f84f7d7208a5 --- /dev/null +++ b/deps/patches/libgit2-bundled_zlib.patch @@ -0,0 +1,55 @@ +From 637f75b2a341df6e308f8a20827dea938a39bd35 Mon Sep 17 00:00:00 2001 +From: Valentin Churavy +Date: Mon, 23 Apr 2018 13:27:50 -0400 +Subject: [PATCH] backport bundled zlib patch + +--- + CMakeLists.txt | 23 ++++++++++++++--------- + 1 file changed, 14 insertions(+), 9 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4783e3ef9..aff84e75c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -44,6 +44,7 @@ OPTION( USE_GSSAPI "Link with libgssapi for SPNEGO auth" OFF ) + OPTION( VALGRIND "Configure build for valgrind" OFF ) + OPTION( CURL "Use curl for HTTP if available" ON) + OPTION( DEBUG_POOL "Enable debug pool allocator" OFF ) ++OPTION( USE_BUNDLED_ZLIB "Use the bundled version of zlib" OFF ) + + IF(DEBUG_POOL) + ADD_DEFINITIONS(-DGIT_DEBUG_POOL) +@@ -340,17 +341,21 @@ ELSE() + ENDIF() + + # Optional external dependency: zlib +-FIND_PACKAGE(ZLIB) +-IF (ZLIB_FOUND) +- INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS}) +- LINK_LIBRARIES(${ZLIB_LIBRARIES}) +- IF(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") +- LIST(APPEND LIBGIT2_PC_LIBS "-lz") ++IF(NOT USE_BUNDLED_ZLIB) ++ FIND_PACKAGE(ZLIB) ++ IF (ZLIB_FOUND) ++ INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS}) ++ LINK_LIBRARIES(${ZLIB_LIBRARIES}) ++ IF(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") ++ LIST(APPEND LIBGIT2_PC_LIBS "-lz") ++ ELSE() ++ SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} zlib") ++ ENDIF() + ELSE() +- SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} zlib") ++ MESSAGE(STATUS "zlib was not found; using bundled 3rd-party sources." ) + ENDIF() +-ELSE() +- MESSAGE(STATUS "zlib was not found; using bundled 3rd-party sources." ) ++ENDIF() ++IF(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND) + INCLUDE_DIRECTORIES(deps/zlib) + ADD_DEFINITIONS(-DNO_VIZ -DSTDC -DNO_GZIP) + FILE(GLOB SRC_ZLIB deps/zlib/*.c deps/zlib/*.h) +-- +2.17.0 +