From: Michael Tremer Date: Thu, 2 Jan 2025 22:18:03 +0000 (+0000) Subject: zlib-ng: Migrate to zlib-ng X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fzlib-ng;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 --- 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 41bb1ea934..f7e9cc5e4e 100755 --- a/make.sh +++ b/make.sh @@ -939,7 +939,7 @@ lfsmake1() { exiterror "Downloading ${pkg}" fi - if ! make_pkg --timer="update_runtime" "${pkg}" TOOLCHAIN=1 ROOT="${BUILD_DIR}" b2 "$@"; then + if ! make_pkg --timer="update_runtime" "${pkg}" TOOLCHAIN=1 ROOT="${BUILD_DIR}" b2 install "$@"; then print_status FAIL exiterror "Building ${pkg}" @@ -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