[zlib PATCH 1 of 3] complibs/zlib: Add zlib support for binutils and gdb
Khem Raj
raj.khem@gmail.com
Wed Nov 23 20:17:00 GMT 2011
On Tue, Nov 22, 2011 at 9:38 AM, Yann E. MORIN
<yann.morin.1998@anciens.enib.fr> wrote:
> Zhenqiang, All,
>
> On Tuesday 22 November 2011 13:04:12 Zhenqiang Chen wrote:
>> # HG changeset patch
>> # User Zhenqiang Chen <zhenqiang.chen@linaro.org>
>> # Date 1321943491 -28800
>> # Node ID a7e34002ac6dcab9dded1c0b04391637b23e2e82
>> # Parent a6c68712024f406df7d2da4af377f51982615833
>> complibs/zlib: Add zlib support to remove the dependence on system zlib
>> for binutils and gdb.
>
> Why don't you want to use the system zlib? What's the use-case? zlib has
> a history of many security holes, and using static means you won't get
> bug-fixes.
I guess if you are building on systems which has either no zlib or
different version of zlib
but I am looking for better use case from Zhenqiang here
>
> Note that the other complibs are needed because older distros do not have
> the needed versions, and using shared libs or static would have the same
> issue for crostool-NG: updating those libs would probably need a full
> re-build of the toolchain.
>
> Too long description line. Use:
> complibs/zlib: add zlib as a companion library
>
> Use our own version to remove dependence on system zlib
> in case blabla...
>
> sob...
>
>> Reviewed-by: Michael Hope
>> Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
>>
>> diff --git a/config/companion_libs.in b/config/companion_libs.in
>> --- a/config/companion_libs.in
>> +++ b/config/companion_libs.in
>> @@ -37,6 +37,11 @@
>> select LIBELF
>> select COMPLIBS_NEEDED
>>
>> +config ZLIB_NEEDED
>> + bool
>> + select ZLIB
>> + select COMPLIBS_NEEDED
>> +
>> config COMPLIBS
>> bool
>>
>> @@ -70,6 +75,10 @@
>> bool
>> select COMPLIBS
>>
>> +config ZLIB
>> + bool
>> + select COMPLIBS
>> +
>> config LIBELF_TARGET
>> bool
>>
>> @@ -93,6 +102,9 @@
>> depends on !LIBELF
>> source "config/companion_libs/libelf.in"
>> endif
>> +if ZLIB
>> +source "config/companion_libs/zlib.in"
>> +endif
>>
>> config FOO
>> bool
>> diff --git a/config/companion_libs/zlib.in b/config/companion_libs/zlib.in
>> new file mode 100644
>> --- /dev/null
>> +++ b/config/companion_libs/zlib.in
>> @@ -0,0 +1,19 @@
>> +# ZLIB options
>> +
>> +choice
>> + bool
>> + prompt "ZLIB version"
>> +# Don't remove next line
>> +# CT_INSERT_VERSION_BELOW
>> +
>> +config ZLIB_V_1_2_5
>> + bool
>> + prompt "1.2.5"
>> +
>> +endchoice
>> +
>> +config ZLIB_VERSION
>> + string
>> +# Don't remove next line
>> +# CT_INSERT_VERSION_STRING_BELOW
>> + default "1.2.5" if ZLIB_V_1_2_5
>
> Do we really want to expose the zlib version? I believe it should be
> transparent, the way libncurses is managed by gdb (version-wise, I mean,
> keeping the complib build as you submitted).
>
>> diff --git a/patches/zlib/1.2.5/zlib-1.2.5.patch b/patches/zlib/1.2.5/zlib-1.2.5.patch
>> new file mode 100644
>> --- /dev/null
>> +++ b/patches/zlib/1.2.5/zlib-1.2.5.patch
>> @@ -0,0 +1,19 @@
>> +diff --git a/Makefile.in b/Makefile.in
>> +index 5b15bd0..6817b94 100644
>> +--- a/Makefile.in
>> ++++ b/Makefile.in
>> +@@ -167,8 +167,12 @@ install-libs: $(LIBS)
>> + -@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi
>> + -@if [ ! -d $(DESTDIR)$(man3dir) ]; then mkdir -p $(DESTDIR)$(man3dir); fi
>> + -@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
>> +- cp $(STATICLIB) $(DESTDIR)$(libdir)
>> +- cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)
>> ++ if [ "x$(STATICLIB)" != "x" ] && [ -e $(STATICLIB) ] ; then \
>> ++ cp $(STATICLIB) $(DESTDIR)$(libdir) ; \
>> ++ fi
>> ++ if [ "x$(SHAREDLIBV)" != "x" ] && [ -e $(SHAREDLIBV) ] ; then \
>> ++ cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir) ; \
>> ++ fi
>> + cd $(DESTDIR)$(libdir); chmod u=rw,go=r $(STATICLIB)
>> + -@(cd $(DESTDIR)$(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
>> + -@cd $(DESTDIR)$(sharedlibdir); if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
>> diff --git a/scripts/build/companion_libs/zlib.sh b/scripts/build/companion_libs/zlib.sh
>> new file mode 100644
>> --- /dev/null
>> +++ b/scripts/build/companion_libs/zlib.sh
>> @@ -0,0 +1,49 @@
>> +# This file adds the functions to build the ZLIB library
>> +# Copyright 2011 Michael Edwards
>> +# Licensed under the GPL v2. See COPYING in the root of this package
>> +
>> +do_zlib_get() { :; }
>> +do_zlib_extract() { :; }
>> +do_zlib() { :; }
>> +
>> +# Overide functions depending on configuration
>> +if [ "${CT_ZLIB}" = "y" ]; then
>> +
>> +do_zlib_get() {
>> + CT_GetFile "zlib-${CT_ZLIB_VERSION}" .tar.gz \
>> + http://sourceforge.net/projects/libpng/files
>> +}
>> +
>> +do_zlib_extract() {
>> + CT_Extract "zlib-${CT_ZLIB_VERSION}"
>> + CT_Patch "zlib" "${CT_ZLIB_VERSION}"
>> +}
>> +
>> +do_zlib() {
>> + mkdir -p "${CT_BUILD_DIR}/build-zlib"
>> + cd "${CT_BUILD_DIR}/build-zlib"
>> +
>> + CT_DoStep INFO "Installing zlib"
>> +
>> + cp -a "${CT_SRC_DIR}/zlib-${CT_ZLIB_VERSION}" "${CT_BUILD_DIR}/build-zlib"
>> + CT_Pushd "${CT_BUILD_DIR}/build-zlib/zlib-${CT_ZLIB_VERSION}"
>> +
>> + CT_DoLog EXTRA "Configuring zlib"
>> +
>> + CT_DoExecLog CFG \
>> + CFLAGS="${CT_CFLAGS_FOR_HOST}" \
>> + CXXFLAGS="${CT_CFLAGS_FOR_HOST}" \
>> + ./configure --prefix="${CT_COMPLIBS_DIR}/zlib" \
>> + --static
>> +
>> + CT_DoLog EXTRA "Building zlib"
>> + CT_DoExecLog ALL make ${JOBSFLAGS}
>> +
>> + CT_DoLog EXTRA "Installing zlib"
>> + CT_DoExecLog ALL make install
>> +
>> + CT_Popd
>> + CT_EndStep
>> +}
>> +
>> +fi # CT_ZLIB
>> diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in
>> --- a/scripts/crosstool-NG.sh.in
>> +++ b/scripts/crosstool-NG.sh.in
>> @@ -117,6 +117,7 @@
>> . "${CT_LIB_DIR}/scripts/build/companion_libs/cloog.sh"
>> . "${CT_LIB_DIR}/scripts/build/companion_libs/mpc.sh"
>> . "${CT_LIB_DIR}/scripts/build/companion_libs/libelf.sh"
>> +. "${CT_LIB_DIR}/scripts/build/companion_libs/zlib.sh"
>> . "${CT_LIB_DIR}/scripts/build/binutils/binutils.sh"
>> . "${CT_LIB_DIR}/scripts/build/binutils/elf2flt.sh"
>> . "${CT_LIB_DIR}/scripts/build/binutils/sstrip.sh"
>> @@ -527,6 +528,7 @@
>> do_cloog_get
>> do_mpc_get
>> do_libelf_get
>> + do_zlib_get
>> do_binutils_get
>> do_elf2flt_get
>> do_sstrip_get
>> @@ -557,6 +559,7 @@
>> do_cloog_extract
>> do_mpc_extract
>> do_libelf_extract
>> + do_zlib_extract
>> do_binutils_extract
>> do_elf2flt_extract
>> do_sstrip_extract
>> diff --git a/steps.mk b/steps.mk
>> --- a/steps.mk
>> +++ b/steps.mk
>> @@ -23,6 +23,7 @@
>> cloog \
>> mpc \
>> libelf \
>> + zlib \
>> binutils \
>> elf2flt \
>> sstrip \
>>
>> --
>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>
>>
>
> --
> .-----------------.--------------------.------------------.--------------------.
> | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
> | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
> '------------------------------^-------^------------------^--------------------'
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>
>
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list