gzip: add patch to fix glibc build
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 4 Aug 2009 20:28:32 +0000 (22:28 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 4 Aug 2009 21:55:28 +0000 (23:55 +0200)
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>
CHANGES
package/gzip/gzip-1.3.12-rename-futimens.patch [new file with mode: 0644]
package/gzip/gzip.mk

diff --git a/CHANGES b/CHANGES
index 0c1f667b1790f91981da5a6851193a2e6cbbce34..905b9d4734b188586ba29112bc411ed3554cd13c 100644 (file)
--- a/CHANGES
+++ b/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:
 
diff --git a/package/gzip/gzip-1.3.12-rename-futimens.patch b/package/gzip/gzip-1.3.12-rename-futimens.patch
new file mode 100644 (file)
index 0000000..8315d7c
--- /dev/null
@@ -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]);
index beffe9d2e0c44deb3cc850e302b0cb4a1e9dd66a..84031613fd6a74aa75f7e3d17b624c52840db7b2 100644 (file)
@@ -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