On 04/18/2018 12:24 AM, Koen Vandeputte wrote: > > > On 17-04-18 19:16, Lucian Cristian wrote: >> On 16.04.2018 01:53, Hauke Mehrtens wrote: >>> This allows us to link the other tools against our libz and we do not >>> need the system zlib any more. >>> >>> Only the static linked library is copied to the staging directory so we >>> have a statically linked library on all systems and not only on Linux. >>> This also adds the new dependencies of the packages which are depending >>> on zlib. >>> >>> Signed-off-by: Hauke Mehrtens <ha...@hauke-m.de> >>> --- >>> include/prereq-build.mk | 5 ---- >>> package/libs/zlib/Makefile | 2 -- >>> tools/Makefile | 14 +++++---- >>> tools/lzma-old/Makefile | 2 ++ >>> tools/lzma-old/patches/120-add-cflags.patch | 11 +++++++ >>> tools/make-ext4fs/Makefile | 8 +---- >>> tools/make-ext4fs/patches/100-add-ldflags.patch | 11 +++++++ >>> tools/squashfs4/Makefile | 2 +- >>> tools/zlib/Makefile | 40 >>> +++++++++++++++++++++++++ >>> 9 files changed, 75 insertions(+), 20 deletions(-) >>> create mode 100644 tools/lzma-old/patches/120-add-cflags.patch >>> create mode 100644 tools/make-ext4fs/patches/100-add-ldflags.patch >>> create mode 100644 tools/zlib/Makefile >>> >>> diff --git a/include/prereq-build.mk b/include/prereq-build.mk >>> index 6917716342..5b9a7e049d 100644 >>> --- a/include/prereq-build.mk >>> +++ b/include/prereq-build.mk >>> @@ -76,11 +76,6 @@ else >>> zlib_link_flags := -lz >>> endif >>> -$(eval $(call TestHostCommand,zlib, \ >>> - Please install a static zlib. (Missing libz.a or zlib.h), \ >>> - echo 'int main(int argc, char **argv) { gzdopen(0, "rb"); return >>> 0; }' | \ >>> - gcc -include zlib.h -x c -o $(TMP_DIR)/a.out - >>> $(zlib_link_flags))) >>> - >>> $(eval $(call TestHostCommand,perl-thread-queue, \ >>> Please install the Perl Thread::Queue module, \ >>> perl -MThread::Queue -e 1)) >>> diff --git a/package/libs/zlib/Makefile b/package/libs/zlib/Makefile >>> index a7c61f7dd0..4a2a0e53b0 100644 >>> --- a/package/libs/zlib/Makefile >>> +++ b/package/libs/zlib/Makefile >>> @@ -21,7 +21,6 @@ PKG_CPE_ID:=cpe:/a:gnu:zlib >>> PKG_CONFIG_DEPENDS:= CONFIG_ZLIB_OPTIMIZE_SPEED >>> -include $(INCLUDE_DIR)/host-build.mk >>> include $(INCLUDE_DIR)/package.mk >>> include $(INCLUDE_DIR)/cmake.mk >>> @@ -95,6 +94,5 @@ define Package/zlib-dev/install >>> $(1)/usr/lib/pkgconfig/ >>> endef >>> -$(eval $(call HostBuild)) >>> $(eval $(call BuildPackage,zlib)) >>> $(eval $(call BuildPackage,zlib-dev)) >>> diff --git a/tools/Makefile b/tools/Makefile >>> index 50bd552d75..8dfab9892b 100644 >>> --- a/tools/Makefile >>> +++ b/tools/Makefile >>> @@ -22,7 +22,7 @@ ifneq >>> ($(CONFIG_SDK)$(CONFIG_PACKAGE_kmod-b43)$(CONFIG_PACKAGE_b43legacy-firmwar >>> >>> endif >>> tools-$(BUILD_TOOLCHAIN) += gmp mpfr mpc libelf expat >>> -tools-y += m4 libtool autoconf automake flex bison pkg-config mklibs >>> +tools-y += m4 libtool autoconf automake flex bison pkg-config mklibs >>> zlib >>> tools-y += sstrip make-ext4fs e2fsprogs mtd-utils mkimage >>> tools-y += firmware-utils patch-image quilt padjffs2 >>> tools-y += mm-macros missing-macros cmake scons bc findutils >>> gengetopt patchelf >>> @@ -43,16 +43,16 @@ $(curdir)/bison/compile := $(curdir)/flex/compile >>> $(curdir)/flex/compile := $(curdir)/libtool/compile >>> $(curdir)/libtool/compile := $(curdir)/m4/compile >>> $(curdir)/autoconf/compile $(curdir)/automake/compile >>> $(curdir)/missing-macros/compile >>> $(curdir)/squashfs/compile := $(curdir)/lzma-old/compile >>> -$(curdir)/squashfs4/compile := $(curdir)/xz/compile >>> +$(curdir)/squashfs4/compile := $(curdir)/xz/compile >>> $(curdir)/zlib/compile >>> $(curdir)/quilt/compile := $(curdir)/autoconf/compile >>> $(curdir)/findutils/compile >>> $(curdir)/autoconf/compile := $(curdir)/m4/compile >>> $(curdir)/automake/compile := $(curdir)/m4/compile >>> $(curdir)/autoconf/compile $(curdir)/pkg-config/compile >>> $(curdir)/xz/compile >>> $(curdir)/gmp/compile := $(curdir)/libtool/compile >>> $(curdir)/mpc/compile := $(curdir)/mpfr/compile $(curdir)/gmp/compile >>> $(curdir)/mpfr/compile := $(curdir)/gmp/compile >>> -$(curdir)/mtd-utils/compile := $(curdir)/e2fsprogs/compile >>> +$(curdir)/mtd-utils/compile := $(curdir)/e2fsprogs/compile >>> $(curdir)/zlib/compile >>> $(curdir)/mklibs/compile := $(curdir)/libtool/compile >>> -$(curdir)/qemu/compile := $(curdir)/e2fsprogs/compile >>> +$(curdir)/qemu/compile := $(curdir)/e2fsprogs/compile >>> $(curdir)/zlib/compile >>> $(curdir)/upslug2/compile := $(curdir)/libtool/compile >>> $(curdir)/mm-macros/compile := $(curdir)/libtool/compile >>> $(curdir)/missing-macros/compile := $(curdir)/autoconf/compile >>> @@ -69,8 +69,12 @@ $(curdir)/patchelf/compile := >>> $(curdir)/libtool/compile >>> $(curdir)/dosfstools/compile := $(curdir)/autoconf/compile >>> $(curdir)/automake/compile >>> $(curdir)/libressl/compile := $(curdir)/pkg-config/compile >>> $(curdir)/mkimage/compile += $(curdir)/libressl/compile >>> -$(curdir)/firmware-utils/compile += $(curdir)/libressl/compile >>> +$(curdir)/firmware-utils/compile += $(curdir)/libressl/compile >>> $(curdir)/zlib/compile >>> $(curdir)/cmake/compile += $(curdir)/libressl/compile >>> +$(curdir)/zlib/compile := $(curdir)/cmake/compile >>> +$(curdir)/wrt350nv2-builder/compile := $(curdir)/zlib/compile >>> +$(curdir)/lzma-old/compile := $(curdir)/zlib/compile >>> +$(curdir)/make-ext4fs/compile := $(curdir)/zlib/compile >>> ifneq ($(HOST_OS),Linux) >>> tools-y += coreutils >>> diff --git a/tools/lzma-old/Makefile b/tools/lzma-old/Makefile >>> index 5982eab5db..5204127a80 100644 >>> --- a/tools/lzma-old/Makefile >>> +++ b/tools/lzma-old/Makefile >>> @@ -21,7 +21,9 @@ LIB_DIR=$(HOST_BUILD_DIR)/C/7zip/Compress/LZMA_Lib >>> ALONE_DIR=$(HOST_BUILD_DIR)/C/7zip/Compress/LZMA_Alone >>> define Host/Compile >>> + +$(HOST_MAKE_VARS) \ >>> $(MAKE) -C $(LIB_DIR) >>> + +$(HOST_MAKE_VARS) \ >>> $(MAKE) -f makefile.gcc -C $(ALONE_DIR) >>> endef >>> diff --git a/tools/lzma-old/patches/120-add-cflags.patch >>> b/tools/lzma-old/patches/120-add-cflags.patch >>> new file mode 100644 >>> index 0000000000..9022e7cd27 >>> --- /dev/null >>> +++ b/tools/lzma-old/patches/120-add-cflags.patch >>> @@ -0,0 +1,11 @@ >>> +--- a/C/7zip/Compress/LZMA_Lib/makefile >>> ++++ b/C/7zip/Compress/LZMA_Lib/makefile >>> +@@ -2,7 +2,7 @@ PROG = liblzma.a >>> + CXX = g++ -O3 -Wall >>> + AR = ar >>> + RM = rm -f >>> +-CFLAGS = -c -I ../../../ >>> ++CFLAGS += -c -I ../../../ >>> + >>> + OBJS = \ >>> + ZLib.o \ >>> diff --git a/tools/make-ext4fs/Makefile b/tools/make-ext4fs/Makefile >>> index f140101c8e..97f9e6369c 100644 >>> --- a/tools/make-ext4fs/Makefile >>> +++ b/tools/make-ext4fs/Makefile >>> @@ -17,13 +17,7 @@ >>> PKG_MIRROR_HASH:=d7ccd5e426b1d15331ff000a37dc15161f6eef594453e970fd584fcde5a2507 >>> >>> include $(INCLUDE_DIR)/host-build.mk >>> -ifeq ($(HOST_OS),Linux) >>> - MAKE_STATIC := STATIC=1 >>> -endif >>> - >>> -define Host/Compile >>> - $(MAKE) -C $(HOST_BUILD_DIR) make_ext4fs $(MAKE_STATIC) >>> -endef >>> +HOST_MAKE_FLAGS += STATIC=1 >>> define Host/Install >>> $(INSTALL_BIN) $(HOST_BUILD_DIR)/make_ext4fs >>> $(STAGING_DIR_HOST)/bin/ >>> diff --git a/tools/make-ext4fs/patches/100-add-ldflags.patch >>> b/tools/make-ext4fs/patches/100-add-ldflags.patch >>> new file mode 100644 >>> index 0000000000..d9ce47bb80 >>> --- /dev/null >>> +++ b/tools/make-ext4fs/patches/100-add-ldflags.patch >>> @@ -0,0 +1,11 @@ >>> +--- a/Makefile >>> ++++ b/Makefile >>> +@@ -27,7 +27,7 @@ OBJ := \ >>> + $(CC) $(CFLAGS) -c -o $@ $^ >>> + >>> + make_ext4fs: $(OBJ) libsparse/libsparse.a >>> +- $(CC) -o $@ $^ $(ZLIB) >>> ++ $(CC) $(LDFLAGS)-o $@ $^ $(ZLIB) >>> + >>> + libsparse/libsparse.a: >>> + $(MAKE) -C libsparse/ libsparse.a >>> diff --git a/tools/squashfs4/Makefile b/tools/squashfs4/Makefile >>> index e9e2b7ca9a..409b1b5a23 100644 >>> --- a/tools/squashfs4/Makefile >>> +++ b/tools/squashfs4/Makefile >>> @@ -20,8 +20,8 @@ >>> HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/squashfs$(PKG_VERSION) >>> include $(INCLUDE_DIR)/host-build.mk >>> define Host/Compile >>> + +$(HOST_MAKE_VARS) \ >>> $(MAKE) -C $(HOST_BUILD_DIR)/squashfs-tools \ >>> - CC="$(HOSTCC)" \ >>> XZ_SUPPORT=1 \ >>> LZMA_XZ_SUPPORT=1 \ >>> XATTR_SUPPORT= \ >>> diff --git a/tools/zlib/Makefile b/tools/zlib/Makefile >>> new file mode 100644 >>> index 0000000000..2746d95b72 >>> --- /dev/null >>> +++ b/tools/zlib/Makefile >>> @@ -0,0 +1,40 @@ >>> +# >>> +# Copyright (C) 2006-2013 OpenWrt.org >>> +# >>> +# This is free software, licensed under the GNU General Public >>> License v2. >>> +# See /LICENSE for more information. >>> +# >>> + >>> +include $(TOPDIR)/rules.mk >>> + >>> +PKG_NAME:=zlib >>> +PKG_VERSION:=1.2.11 >>> +PKG_RELEASE:=1 >>> + >>> +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz >>> +PKG_SOURCE_URL:=@SF/libpng http://www.zlib.net >>> +PKG_HASH:=4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066 >>> >>> + >>> +PKG_LICENSE:=Zlib >>> +PKG_LICENSE_FILES:=README >>> +PKG_CPE_ID:=cpe:/a:gnu:zlib >>> + >>> +include $(INCLUDE_DIR)/host-build.mk >>> +include $(INCLUDE_DIR)/cmake.mk >>> + >>> + >>> +define Host/Install >>> + $(CP) $(HOST_BUILD_DIR)/libz.a $(STAGING_DIR_HOST)/lib/ >>> + $(CP) $(HOST_BUILD_DIR)/zconf.h $(STAGING_DIR_HOST)/include/ >>> + $(CP) $(HOST_BUILD_DIR)/zlib.h $(STAGING_DIR_HOST)/include/ >>> + $(CP) $(HOST_BUILD_DIR)/zlib.pc $(STAGING_DIR_HOST)/lib/pkgconfig/ >>> +endef >>> + >>> +define Host/Clean >>> + rm -f $(STAGING_DIR_HOST)/lib/libz.a >>> + rm -f $(STAGING_DIR_HOST)/include/zconf.h >>> + rm -f $(STAGING_DIR_HOST)/include/zlib.h >>> + rm -f $(STAGING_DIR_HOST)/lib/pkgconfig//zlib.pc >>> +endef >>> + >>> +$(eval $(call HostBuild)) >> >> I tested the patch series because I have a linking problem with zlib >> and python an I wanted to see if this fixes it (it does not) but on >> i686 I have this error >> >> >> make[8]: Entering directory >> '/home/build/proxy/build_dir/hostpkg/glib-2.56.1/gio' >> CCLD libgio-2.0.la >> /usr/bin/ld: /home/build/proxy/staging_dir/host/lib/libz.a(deflate.o): >> relocation R_X86_64_PC32 against symbol `_length_code' can not be used >> when making a shared object; recompile with -fPIC >> /usr/bin/ld: final link failed: Bad value >> collect2: error: ld returned 1 exit status >> Makefile:2183: recipe for target 'libgio-2.0.la' failed >> >> > Hi Hauke, > > Probably related to the above? > > When I'm building using this patch series, I'm getting a python build > error. > Please see attached logfile. > Reverting the series fixes the build issue. > > > Do note that I'm also using my own config, which adds all feeds and uses > a lot more packages than default OpenWrt. > > Thanks, > > Koen
I am not able to reproduce this problem and it looks strange because you have some compile problems related to OpenSSL functions. Can you provide me with a configuration which triggers this problem please? Are you only using these 5 patches on top of master or do you use also some other patches on top of master? Hauke _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev