From: Michael Tremer Date: Fri, 3 Jan 2025 10:39:28 +0000 (+0000) Subject: zlib-ng: Migrate to zlib-ng X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c4a21542834c0a5dc13192aa5a30be2fd60c10e0;p=people%2Fms%2Fipfire-2.x.git zlib-ng: Migrate to zlib-ng This is a new and improved version of zlib that merges various fixes and optimizations from various contributors. Amonst those are taking advantage of AVX and instruction sets if they are available. This patch adds the new API and a compat library that is a drop-in replacement for the legacy version of zlib. Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter --- diff --git a/config/rootfiles/common/zlib b/config/rootfiles/common/zlib deleted file mode 100644 index ae2bd9e855..0000000000 --- a/config/rootfiles/common/zlib +++ /dev/null @@ -1,9 +0,0 @@ -lib/libz.so -lib/libz.so.1 -lib/libz.so.1.3.1 -#usr/include/zconf.h -#usr/include/zlib.h -#usr/lib/libz.a -#usr/lib/pkgconfig -#usr/lib/pkgconfig/zlib.pc -#usr/share/man/man3/zlib.3 diff --git a/config/rootfiles/common/zlib-ng b/config/rootfiles/common/zlib-ng new file mode 100644 index 0000000000..0e6cf18c53 --- /dev/null +++ b/config/rootfiles/common/zlib-ng @@ -0,0 +1,17 @@ +#usr/include/zconf-ng.h +#usr/include/zconf.h +#usr/include/zlib-ng.h +#usr/include/zlib.h +#usr/include/zlib_name_mangling-ng.h +#usr/include/zlib_name_mangling.h +#usr/lib/libz-ng.a +#usr/lib/libz-ng.so +usr/lib/libz-ng.so.2 +usr/lib/libz-ng.so.2.2.3 +#usr/lib/libz.a +#usr/lib/libz.so +usr/lib/libz.so.1 +usr/lib/libz.so.1.3.1.zlib-ng +#usr/lib/pkgconfig +#usr/lib/pkgconfig/zlib-ng.pc +#usr/lib/pkgconfig/zlib.pc diff --git a/lfs/zlib b/lfs/zlib-ng similarity index 80% rename from lfs/zlib rename to lfs/zlib-ng index d7c7239144..5310c60517 100644 --- a/lfs/zlib +++ b/lfs/zlib-ng @@ -24,30 +24,28 @@ include Config -VER = 1.3.1 +VER = 2.2.3 -THISAPP = zlib-$(VER) -DL_FILE = $(THISAPP).tar.xz +THISAPP = zlib-ng-$(VER) +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) ifeq "$(TOOLCHAIN)" "1" TARGET = $(DIR_INFO)/$(THISAPP)-tools - CROSS_PREFIX = $(CROSSTARGET)- else TARGET = $(DIR_INFO)/$(THISAPP) endif -CFLAGS += -fPIC -DPIC - ############################################################################### # Top-level Rules ############################################################################### + objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = 42d109223801a493de6d52e7343403d7fc3234a6ca816425fe41ac9c18019b01b93841acd28a235e99f2256a6a17f93624e96b2ddb58d588c8190a6bedb82910 +$(DL_FILE)_BLAKE2 = 65cd976d559dcc31f34861a01b2eb0ce0439dd6412553a5a9842d2d937d4a0d1194aec98f478f5def4a0401e65a7c97b6843122bae49a35f96c7e2c59e79cc64 install : $(TARGET) @@ -77,18 +75,24 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - - cd $(DIR_APP) && CROSS_PREFIX=$(CROSS_PREFIX) ./configure --prefix=$(PREFIX) --shared - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - -ifneq "$(TOOLCHAIN)" "1" - mv -v /usr/lib/libz.so.$(VER) /lib/libz.so.$(VER) - ln -svf libz.so.$(VER) /lib/libz.so.1 - ln -svf libz.so.$(VER) /lib/libz.so - rm -vf /usr/lib/libz.so.1 - rm -vf /usr/lib/libz.so -endif + + # Build the regular version + cd $(DIR_APP) && mkdir -pv build + cd $(DIR_APP)/build && ../configure \ + --prefix=$(PREFIX) + cd $(DIR_APP)/build && make $(MAKETUNING) VERBOSE=1 + + # Build the compat version + cd $(DIR_APP) && mkdir -pv compat + cd $(DIR_APP)/compat && ../configure \ + --prefix=$(PREFIX) \ + --zlib-compat \ + --without-new-strategies + cd $(DIR_APP)/compat && make $(MAKETUNING) VERBOSE=1 + + # Install both versions + cd $(DIR_APP)/build && make install + cd $(DIR_APP)/compat && make install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/make.sh b/make.sh index fbfc8af860..84b00f9ad2 100755 --- a/make.sh +++ b/make.sh @@ -1363,7 +1363,7 @@ build_toolchain() { lfsmake1 glibc lfsmake1 libxcrypt lfsmake1 gcc PASS=L - lfsmake1 zlib + lfsmake1 zlib-ng lfsmake1 binutils PASS=2 lfsmake1 gcc PASS=2 lfsmake1 zstd @@ -1408,7 +1408,7 @@ build_system() { lfsmake2 glibc lfsmake2 tzdata lfsmake2 cleanup-toolchain - lfsmake2 zlib + lfsmake2 zlib-ng [ "${BUILD_ARCH}" = "riscv64" ] && lfsmake2 gcc PASS=A lfsmake2 zstd lfsmake2 autoconf