From 2be8444bf249dad3a39004a4726b17eac8c32a48 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Fri, 31 Oct 2008 13:09:32 +0100 Subject: [PATCH] use optimized asm if available --- ...figure.patch => zlib-1.2.3-010-configure.patch} | 47 +++++++++++++++------- package/zlib/zlib-1.2.3-020-arflags.patch | 43 ++++++++++++++++++++ package/zlib/zlib-1.2.3-030-OBJA.patch | 28 +++++++++++++ package/zlib/zlib-arflags.patch | 21 ---------- package/zlib/zlib.mk | 35 ++++++++-------- 5 files changed, 122 insertions(+), 52 deletions(-) rename package/zlib/{zlib-1.2.1-configure.patch => zlib-1.2.3-010-configure.patch} (71%) create mode 100644 package/zlib/zlib-1.2.3-020-arflags.patch create mode 100644 package/zlib/zlib-1.2.3-030-OBJA.patch delete mode 100644 package/zlib/zlib-arflags.patch diff --git a/package/zlib/zlib-1.2.1-configure.patch b/package/zlib/zlib-1.2.3-010-configure.patch similarity index 71% rename from package/zlib/zlib-1.2.1-configure.patch rename to package/zlib/zlib-1.2.3-010-configure.patch index ccd67ca..07b8007 100644 --- a/package/zlib/zlib-1.2.1-configure.patch +++ b/package/zlib/zlib-1.2.3-010-configure.patch @@ -1,6 +1,16 @@ ---- zlib/configure -+++ zlib/configure -@@ -160,8 +160,8 @@ +diff -rdup zlib-1.2.3.orig/configure zlib-1.2.3/configure +--- zlib-1.2.3.orig/configure 2005-07-11 22:11:57.000000000 +0200 ++++ zlib-1.2.3/configure 2008-10-31 12:48:33.000000000 +0100 +@@ -71,7 +72,7 @@ case "$cc" in + *gcc*) gcc=1;; + esac + +-if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then ++if test $gcc -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then + CC="$cc" + SFLAGS=${CFLAGS-"-fPIC -O3"} + CFLAGS="$cflags" +@@ -171,8 +172,8 @@ SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext if test $shared -eq 1; then echo Checking for shared library support... # we must test in two steps (cc then ld), required at least on SunOS 4.x @@ -9,9 +19,9 @@ + if ($CC -c $SFLAGS $test.c) 2>>config.log && + ($LDSHARED -o $test$shared_ext $test.o) 2>>config.log; then CFLAGS="$SFLAGS" - LIBS="$LIBS $SHAREDLIBV" + LIBS="$SHAREDLIBV" echo Building shared library $SHAREDLIBV with $CC. -@@ -185,7 +185,7 @@ +@@ -195,7 +196,7 @@ cat > $test.c < int main() { return 0; } EOF @@ -20,7 +30,7 @@ sed < zconf.in.h "/HAVE_UNISTD_H/s%0%1%" > zconf.h echo "Checking for unistd.h... Yes." else -@@ -208,7 +208,7 @@ +@@ -218,7 +219,7 @@ int main() } EOF @@ -29,7 +39,7 @@ echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()" cat > $test.c <$test.c <$test.c <$test.c < int main() { return 0; } EOF @@ -92,7 +102,7 @@ echo "Checking for errno.h... Yes." else echo "Checking for errno.h... No." -@@ -407,7 +407,7 @@ +@@ -417,7 +418,7 @@ caddr_t hello() { return mmap((caddr_t)0, (off_t)0, PROT_READ, MAP_SHARED, 0, (off_t)0); } EOF @@ -101,3 +111,12 @@ CFLAGS="$CFLAGS -DUSE_MMAP" echo Checking for mmap support... Yes. else +@@ -427,7 +428,7 @@ fi + CPP=${CPP-"$CC -E"} + case $CFLAGS in + *ASMV*) +- if test "`nm $test.o | grep _hello`" = ""; then ++ if test "x`nm $test.o | grep _hello`" = "x"; then + CPP="$CPP -DNO_UNDERLINE" + echo Checking for underline in external names... No. + else diff --git a/package/zlib/zlib-1.2.3-020-arflags.patch b/package/zlib/zlib-1.2.3-020-arflags.patch new file mode 100644 index 0000000..2dec43b --- /dev/null +++ b/package/zlib/zlib-1.2.3-020-arflags.patch @@ -0,0 +1,43 @@ +diff -rdup zlib-1.2.3.orig/configure zlib-1.2.3/configure +--- zlib-1.2.3.orig/configure 2005-07-11 22:11:57.000000000 +0200 ++++ zlib-1.2.3/configure 2008-10-31 12:48:33.000000000 +0100 +@@ -23,7 +23,8 @@ LDFLAGS="-L. ${LIBS}" + VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` + VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h` + VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h` +-AR=${AR-"ar rc"} ++AR=${AR-"ar"} ++ARFLAGS=${ARFLAGS-"rc"} + RANLIB=${RANLIB-"ranlib"} + prefix=${prefix-/usr/local} + exec_prefix=${exec_prefix-'${prefix}'} +@@ -448,6 +449,7 @@ sed < Makefile.in " + /^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV# + /^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM# + /^AR *=/s#=.*#=$AR# ++/^ARFLAGS *=/s#=.*#=$ARFLAGS# + /^RANLIB *=/s#=.*#=$RANLIB# + /^EXE *=/s#=.*#=$EXE# + /^prefix *=/s#=.*#=$prefix# +diff -rdup zlib-1.2.3.orig/Makefile.in zlib-1.2.3/Makefile.in +--- zlib-1.2.3.orig/Makefile.in 2005-07-18 04:25:21.000000000 +0200 ++++ zlib-1.2.3/Makefile.in 2008-10-31 12:50:57.000000000 +0100 +@@ -33,7 +33,8 @@ SHAREDLIB=libz.so + SHAREDLIBV=libz.so.1.2.3 + SHAREDLIBM=libz.so.1 + +-AR=ar rc ++AR=ar ++ARFLAGS=rc + RANLIB=ranlib + TAR=tar + SHELL=/bin/sh +@@ -68,7 +69,7 @@ test: all + fi + + libz.a: $(OBJS) $(OBJA) +- $(AR) $@ $(OBJS) $(OBJA) ++ $(AR) $(ARFLAGS) $@ $(OBJS) $(OBJA) + -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 + + match.o: match.S diff --git a/package/zlib/zlib-1.2.3-030-OBJA.patch b/package/zlib/zlib-1.2.3-030-OBJA.patch new file mode 100644 index 0000000..63d5408 --- /dev/null +++ b/package/zlib/zlib-1.2.3-030-OBJA.patch @@ -0,0 +1,28 @@ +diff -rdup zlib-1.2.3.old/Makefile.in zlib-1.2.3/Makefile.in +--- zlib-1.2.3.old/Makefile.in 2008-10-31 13:02:28.000000000 +0100 ++++ zlib-1.2.3/Makefile.in 2008-10-31 13:04:21.000000000 +0100 +@@ -47,11 +47,9 @@ includedir = ${prefix}/include + mandir = ${prefix}/share/man + man3dir = ${mandir}/man3 + +-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ +- zutil.o inflate.o infback.o inftrees.o inffast.o +- +-OBJA = + # to use the asm code: make OBJA=match.o ++OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ ++ zutil.o inflate.o infback.o inftrees.o inffast.o $(OBJA) + + TEST_OBJS = example.o minigzip.o + +@@ -68,8 +66,8 @@ test: all + echo ' *** zlib test FAILED ***'; \ + fi + +-libz.a: $(OBJS) $(OBJA) +- $(AR) $(ARFLAGS) $@ $(OBJS) $(OBJA) ++libz.a: $(OBJS) ++ $(AR) $(ARFLAGS) $@ $(OBJS) + -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 + + match.o: match.S diff --git a/package/zlib/zlib-arflags.patch b/package/zlib/zlib-arflags.patch deleted file mode 100644 index f9dae52..0000000 --- a/package/zlib/zlib-arflags.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- zlib-1.2.3/Makefile.in -+++ zlib-1.2.3/Makefile.in -@@ -33,7 +33,8 @@ - SHAREDLIBV=libz.so.1.2.3 - SHAREDLIBM=libz.so.1 - --AR=ar rc -+AR=ar -+ARFLAGS=rc - RANLIB=ranlib - TAR=tar - SHELL=/bin/sh -@@ -68,7 +69,7 @@ - fi - - libz.a: $(OBJS) $(OBJA) -- $(AR) $@ $(OBJS) $(OBJA) -+ $(AR) $(ARFLAGS) $@ $(OBJS) $(OBJA) - -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 - - match.o: match.S diff --git a/package/zlib/zlib.mk b/package/zlib/zlib.mk index 1e9ae84..568fcd3 100644 --- a/package/zlib/zlib.mk +++ b/package/zlib/zlib.mk @@ -20,12 +20,26 @@ ifeq ($(BR2_LARGEFILE),y) ZLIB_CFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 endif +ifeq ($(BR2_x86_i586),y) +ZLIB_ASM_FILE=cp -dpf $(ZLIB_DIR)/contrib/asm586/match.S $(ZLIB_DIR)/ +endif +# pentium pro capabable: +ifeq ($(BR2_i386),y) +ifneq ($(findstring y,$(BR2_x86_i386)$(BR2_x86_i486)$(BR2_x86_i586)$(BR2_x86_geode)$(BR2_x86_c3)$(BR2_x86_winchip_c6)$(BR2_x86_winchip2)),y) +ZLIB_ASM_FILE=cp -dpf $(ZLIB_DIR)/contrib/asm686/match.S $(ZLIB_DIR)/ +endif +endif +ifneq ($(ZLIB_ASM_FILE),) +ZLIB_CFLAGS+=-DASMV -DNO_UNDERLINE +ZLIB_OBJA:=match.o +endif + $(DL_DIR)/$(ZLIB_SOURCE): $(WGET) -P $(DL_DIR) $(ZLIB_SITE)/$(ZLIB_SOURCE) $(ZLIB_DIR)/.patched: $(DL_DIR)/$(ZLIB_SOURCE) $(ZLIB_CAT) $(DL_DIR)/$(ZLIB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - - toolchain/patch-kernel.sh $(ZLIB_DIR) package/zlib/ zlib\*.patch + toolchain/patch-kernel.sh $(ZLIB_DIR) package/zlib/ zlib-$(ZLIB_VERSION)\*.patch # not an autoconf package: $(CONFIG_UPDATE) $(@D) touch $@ @@ -34,7 +48,7 @@ $(ZLIB_DIR)/.configured: $(ZLIB_DIR)/.patched (cd $(ZLIB_DIR); rm -rf config.cache; \ $(TARGET_CONFIGURE_ARGS) \ $(TARGET_CONFIGURE_OPTS) \ - $(TARGET_CONFIGURE_ENV) \ + CFLAGS="$(TARGET_CFLAGS) $(ZLIB_CFLAGS)" \ ./configure \ $(if $(BR2_ENABLE_SHARED),--shared) \ --prefix=/usr \ @@ -44,22 +58,9 @@ $(ZLIB_DIR)/.configured: $(ZLIB_DIR)/.patched ) touch $@ -ifeq ($(BR2_x86_i586),y) -ZLIB_ASM_FILE=cp -dpf $(ZLIB_DIR)/contrib/asm586/match.S $(ZLIB_DIR)/ -endif -# pentium pro capabable: -ifeq ($(BR2_i386),y) -ifneq ($(findstring y,$(BR2_x86_i386)$(BR2_x86_i486)$(BR2_x86_i586)$(BR2_x86_geode)$(BR2_x86_c3)$(BR2_x86_winchip_c6)$(BR2_x86_winchip2)),y) -ZLIB_ASM_FILE=cp -dpf $(ZLIB_DIR)/contrib/asm686/match.S $(ZLIB_DIR)/ -endif -endif -ifneq ($(ZLIB_ASM_FILE),) -ZLIB_CFLAGS+=-DASMV -ZLIB_OBJA:=match.o -endif - $(ZLIB_DIR)/libz.so.$(ZLIB_VERSION): $(ZLIB_DIR)/.configured - $(MAKE) CFLAGS="$(ZLIB_CFLAGS)" -C $(ZLIB_DIR) $(ZLIB_OBJA) all libz.a + $(ZLIB_ASM_FILE) + $(MAKE) $(if $(ZLIB_OBJA),OBJA=$(ZLIB_OBJA)) -C $(ZLIB_DIR) $(ZLIB_OBJA) all libz.a touch -c $(ZLIB_DIR)/libz.so.$(ZLIB_VERSION) $(STAGING_DIR)/usr/lib/libz.so.$(ZLIB_VERSION): $(ZLIB_DIR)/libz.so.$(ZLIB_VERSION) -- 2.11.4.GIT