Package: e2fsprogs
Version: 1.40.4-1
Severity: serious
Tags: patch
Justification: no longer builds from source

Hi, Ted!

Your recent switch to dietlibc for e2fsprogs-static had the
unfortunate side effect of breaking amd64 builds, as dietlibc (unlike
glibc) doesn't bother providing either llseek or lseek64 on 64-bit
architectures.  As a consequence, llseek.c consults an incomplete list
of 64-bit architectures, incorrectly concludes that amd64 doesn't
count, and tries to include <linux/unistd.h>, which dietlibc also
lacks.  (FTR, you can find a full build log at
http://buildd.debian.org/fetch.cgi?pkg=e2fsprogs;ver=1.40.4-1;arch=amd64;stamp=1199555656
.)

I am attaching a patch that replaces the hardcoded architecture list
with a generic sizeof comparison; could you please apply it, or
otherwise address the breakage?

Thanks!

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.23.10 (SMP w/2 CPU cores)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash
--- e2fsprogs-1.40.4.orig/lib/blkid/llseek.c
+++ e2fsprogs-1.40.4/lib/blkid/llseek.c
@@ -45,11 +45,11 @@
 
 #else	/* ! HAVE_LLSEEK */
 
-#if defined(__alpha__) || defined(__ia64__)
+#if SIZEOF_LONG == SIZEOF_LONG_LONG
 
 #define llseek lseek
 
-#else /* !__alpha__ && !__ia64__*/
+#else /* SIZEOF_LONG != SIZEOF_LONG_LONG */
 
 #include <linux/unistd.h>
 
--- e2fsprogs-1.40.4.orig/lib/ext2fs/llseek.c
+++ e2fsprogs-1.40.4/lib/ext2fs/llseek.c
@@ -46,11 +46,11 @@
 
 #else	/* ! HAVE_LLSEEK */
 
-#if defined(__alpha__) || defined (__ia64__)
+#if SIZEOF_LONG == SIZEOF_LONG_LONG
 
 #define llseek lseek
 
-#else /* !__alpha__ && !__ia64__*/
+#else /* SIZEOF_LONG != SIZEOF_LONG_LONG */
 
 #include <linux/unistd.h>
 

Reply via email to