Răsfoiți Sursa

gzip: add patch to fix glibc build

Recent glibc versions introduced a futimens() function, that gzip
already implemented. So waiting for a proper usage of this function in
gzip, we rename the gzip internal function to gz_futimens().

Patch inspired by
http://lists.pld-linux.org/mailman/pipermail/pld-cvs-commit/Week-of-Mon-20070514/155476.html

Fixes bug #537

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thomas Petazzoni 16 ani în urmă
părinte
comite
27c667c782
3 a modificat fișierele cu 50 adăugiri și 0 ștergeri
  1. 1 0
      CHANGES
  2. 48 0
      package/gzip/gzip-1.3.12-rename-futimens.patch
  3. 1 0
      package/gzip/gzip.mk

+ 1 - 0
CHANGES

@@ -78,6 +78,7 @@
 	#509: Bump sqlite package to 3.6.16
 	#523: pciutils broken with external toolchain
 	#533: Update gamin to 0.1.10 to fix compilation
+	#537: Fix gzip build with recent glibc
 
 2009.05, Released June 1st, 2009:
 

+ 48 - 0
package/gzip/gzip-1.3.12-rename-futimens.patch

@@ -0,0 +1,48 @@
+---
+ gzip.c        |    2 +-
+ lib/utimens.c |    4 ++--
+ lib/utimens.h |    2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+Index: gzip-1.3.12/gzip.c
+===================================================================
+--- gzip-1.3.12.orig/gzip.c
++++ gzip-1.3.12/gzip.c
+@@ -1637,7 +1637,7 @@
+ 	}
+       }
+ 
+-    if (futimens (ofd, ofname, timespec) != 0)
++    if (gz_futimens (ofd, ofname, timespec) != 0)
+       {
+ 	int e = errno;
+ 	WARN ((stderr, "%s: ", program_name));
+Index: gzip-1.3.12/lib/utimens.c
+===================================================================
+--- gzip-1.3.12.orig/lib/utimens.c
++++ gzip-1.3.12/lib/utimens.c
+@@ -75,7 +75,7 @@
+    Return 0 on success, -1 (setting errno) on failure.  */
+ 
+ int
+-futimens (int fd ATTRIBUTE_UNUSED,
++gz_futimens (int fd ATTRIBUTE_UNUSED,
+ 	  char const *file, struct timespec const timespec[2])
+ {
+   /* Some Linux-based NFS clients are buggy, and mishandle time stamps
+@@ -185,5 +185,5 @@
+ int
+ utimens (char const *file, struct timespec const timespec[2])
+ {
+-  return futimens (-1, file, timespec);
++  return gz_futimens (-1, file, timespec);
+ }
+Index: gzip-1.3.12/lib/utimens.h
+===================================================================
+--- gzip-1.3.12.orig/lib/utimens.h
++++ gzip-1.3.12/lib/utimens.h
+@@ -1,3 +1,3 @@
+ #include <time.h>
+-int futimens (int, char const *, struct timespec const [2]);
++int gz_futimens (int, char const *, struct timespec const [2]);
+ int utimens (char const *, struct timespec const [2]);

+ 1 - 0
package/gzip/gzip.mk

@@ -18,6 +18,7 @@ gzip-source: $(DL_DIR)/$(GZIP_SOURCE)
 
 $(GZIP_DIR)/.unpacked: $(DL_DIR)/$(GZIP_SOURCE)
 	$(GZIP_CAT) $(DL_DIR)/$(GZIP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+	toolchain/patch-kernel.sh $(GZIP_DIR) package/gzip gzip\*.patch
 	touch $(GZIP_DIR)/.unpacked
 
 $(GZIP_DIR)/.configured: $(GZIP_DIR)/.unpacked