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