Build environment: Make sure Python is linkign against static Zlib
There is system-wide libz development package installed by default, needed for some other dependencies. This patch ensures Python will use our own self-compiled Zlib.
This commit is contained in:
@@ -93,13 +93,14 @@ else()
|
|||||||
else()
|
else()
|
||||||
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
|
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
|
||||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||||
set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include")
|
set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include")
|
||||||
set(PYTHON_LDFLAGS "-L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib")
|
set(PYTHON_LDFLAGS "-L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib -L${LIBDIR}/zlib/lib")
|
||||||
set(PYTHON_CONFIGURE_EXTRA_ENV
|
set(PYTHON_CONFIGURE_EXTRA_ENV
|
||||||
export CFLAGS=${PYTHON_CFLAGS} &&
|
export CFLAGS=${PYTHON_CFLAGS} &&
|
||||||
export CPPFLAGS=${PYTHON_CFLAGS} &&
|
export CPPFLAGS=${PYTHON_CFLAGS} &&
|
||||||
export LDFLAGS=${PYTHON_LDFLAGS})
|
export LDFLAGS=${PYTHON_LDFLAGS})
|
||||||
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
|
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
|
||||||
|
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_python
|
ExternalProject_Add(external_python
|
||||||
@@ -179,5 +180,6 @@ if(UNIX AND NOT APPLE)
|
|||||||
external_lzma
|
external_lzma
|
||||||
external_ssl
|
external_ssl
|
||||||
external_sqlite
|
external_sqlite
|
||||||
|
external_zlib
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -46,4 +46,10 @@ else()
|
|||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
if (UNIX AND NOT APPLE)
|
||||||
|
ExternalProject_Add_Step(external_zlib after_install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/libz.a ${LIBDIR}/zlib/lib/libz_pic.a
|
||||||
|
DEPENDEES install
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
29
build_files/build_environment/patches/python_linux.diff
Normal file
29
build_files/build_environment/patches/python_linux.diff
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
diff --git a/setup.py.orig b/setup.py
|
||||||
|
index a97a755..ee2bfad 100644
|
||||||
|
--- a/setup.py.orig
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -1422,13 +1422,13 @@ class PyBuildExt(build_ext):
|
||||||
|
version = line.split()[2]
|
||||||
|
break
|
||||||
|
if version >= version_req:
|
||||||
|
- if (self.compiler.find_library_file(lib_dirs, 'z')):
|
||||||
|
+ if (self.compiler.find_library_file(lib_dirs, 'z_pic')):
|
||||||
|
if host_platform == "darwin":
|
||||||
|
zlib_extra_link_args = ('-Wl,-search_paths_first',)
|
||||||
|
else:
|
||||||
|
zlib_extra_link_args = ()
|
||||||
|
exts.append( Extension('zlib', ['zlibmodule.c'],
|
||||||
|
- libraries = ['z'],
|
||||||
|
+ libraries = ['z_pic'],
|
||||||
|
extra_link_args = zlib_extra_link_args))
|
||||||
|
have_zlib = True
|
||||||
|
else:
|
||||||
|
@@ -1442,7 +1442,7 @@ class PyBuildExt(build_ext):
|
||||||
|
# crc32 if we have it. Otherwise binascii uses its own.
|
||||||
|
if have_zlib:
|
||||||
|
extra_compile_args = ['-DUSE_ZLIB_CRC32']
|
||||||
|
- libraries = ['z']
|
||||||
|
+ libraries = ['z_pic']
|
||||||
|
extra_link_args = zlib_extra_link_args
|
||||||
|
else:
|
||||||
|
extra_compile_args = []
|
||||||
Reference in New Issue
Block a user