tags 130509 +patch thanks I've worked out the attached patch for large file support in md5sum as supplied with dpkg, blatantly borrowed from the configure code in the textutils package which has a working md5sum. This should also help with LFS for the rest of dpkg - as a start, make sure that config.h is #included in each source file before the system headers like stdio.h and unistd.h:
sledge:/$ grep -irl __USE_LARGEFILE64 /usr/include /usr/include/dirent.h /usr/include/fcntl.h /usr/include/features.h /usr/include/ftw.h /usr/include/sys/types.h /usr/include/sys/statfs.h /usr/include/sys/stat.h /usr/include/sys/resource.h /usr/include/sys/mman.h /usr/include/sys/statvfs.h /usr/include/bits/dirent.h /usr/include/bits/confname.h /usr/include/bits/stat.h /usr/include/bits/statfs.h /usr/include/bits/statvfs.h /usr/include/bits/fcntl.h /usr/include/bits/resource.h /usr/include/stdio.h /usr/include/stdlib.h /usr/include/unistd.h /usr/include/aio.h -- Steve McIntyre, Cambridge, UK. [EMAIL PROTECTED] <a href=http://www.einval.com/steve/>My home page</a> "Can't keep my eyes from the circling sky, +------------------ "Tongue-tied & twisted, Just an earth-bound misfit, I..." |Finger for PGP key
diff -uNr dpkg-1.9.20/aclocal.m4 dpkg-1.9.20.steve/aclocal.m4 --- dpkg-1.9.20/aclocal.m4 Sun Mar 17 09:49:48 2002 +++ dpkg-1.9.20.steve/aclocal.m4 Mon Apr 8 00:45:25 2002 @@ -663,3 +663,116 @@ fi ]) +dnl By default, many hosts won't let programs access large files; +dnl one must use special compiler options to get large-file access to work. +dnl For more details about this brain damage please see: +dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html + +dnl Written by Paul Eggert <[EMAIL PROTECTED]>. + +dnl Internal subroutine of AC_SYS_LARGEFILE. +dnl AC_SYS_LARGEFILE_FLAGS(FLAGSNAME) +AC_DEFUN(AC_SYS_LARGEFILE_FLAGS, + [AC_CACHE_CHECK([for $1 value to request large file support], + ac_cv_sys_largefile_$1, + [ac_cv_sys_largefile_$1=`($GETCONF LFS_$1) 2>/dev/null` || { + ac_cv_sys_largefile_$1=no + ifelse($1, CFLAGS, + [case "$host_os" in + # IRIX 6.2 and later require cc -n32. +changequote(, )dnl + irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*) +changequote([, ])dnl + if test "$GCC" != yes; then + ac_cv_sys_largefile_CFLAGS=-n32 + fi + ac_save_CC="$CC" + CC="$CC $ac_cv_sys_largefile_CFLAGS" + AC_TRY_LINK(, , , ac_cv_sys_largefile_CFLAGS=no) + CC="$ac_save_CC" + esac]) + }])]) + +dnl Internal subroutine of AC_SYS_LARGEFILE. +dnl AC_SYS_LARGEFILE_SPACE_APPEND(VAR, VAL) +AC_DEFUN(AC_SYS_LARGEFILE_SPACE_APPEND, + [case $2 in + no) ;; + ?*) + case "[$]$1" in + '') $1=$2 ;; + *) $1=[$]$1' '$2 ;; + esac ;; + esac]) + +dnl Internal subroutine of AC_SYS_LARGEFILE. +dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT) +AC_DEFUN(AC_SYS_LARGEFILE_MACRO_VALUE, + [AC_CACHE_CHECK([for $1], $2, + [$2=no +changequote(, )dnl + $4 + for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do + case "$ac_flag" in + -D$1) + $2=1 ;; + -D$1=*) + $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;; + esac + done +changequote([, ])dnl + ]) + if test "[$]$2" != no; then + AC_DEFINE_UNQUOTED([$1], [$]$2, [$3]) + fi]) + +AC_DEFUN(AC_SYS_LARGEFILE, + [AC_REQUIRE([AC_CANONICAL_HOST]) + AC_ARG_ENABLE(largefile, + [ --disable-largefile omit support for large files]) + if test "$enable_largefile" != no; then + AC_CHECK_TOOL(GETCONF, getconf) + AC_SYS_LARGEFILE_FLAGS(CFLAGS) + AC_SYS_LARGEFILE_FLAGS(LDFLAGS) + AC_SYS_LARGEFILE_FLAGS(LIBS) + + for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do + case "$ac_flag" in + no) ;; + -D_FILE_OFFSET_BITS=*) ;; + -D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;; + -D_LARGE_FILES | -D_LARGE_FILES=*) ;; + -D?* | -I?*) + AC_SYS_LARGEFILE_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;; + *) + AC_SYS_LARGEFILE_SPACE_APPEND(CFLAGS, "$ac_flag") ;; + esac + done + AC_SYS_LARGEFILE_SPACE_APPEND(LDFLAGS, "$ac_cv_sys_largefile_LDFLAGS") + AC_SYS_LARGEFILE_SPACE_APPEND(LIBS, "$ac_cv_sys_largefile_LIBS") + AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, + ac_cv_sys_file_offset_bits, + [Number of bits in a file offset, on hosts where this is settable.] + [case "$host_os" in + # HP-UX 10.20 and later + hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) + ac_cv_sys_file_offset_bits=64 ;; + esac]) + AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, + ac_cv_sys_largefile_source, + [Define to make fseeko etc. visible, on some hosts.], + [case "$host_os" in + # HP-UX 10.20 and later + hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) + ac_cv_sys_largefile_source=1 ;; + esac]) + AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, + ac_cv_sys_large_files, + [Define for large files, on AIX-style hosts.], + [case "$host_os" in + # AIX 4.2 and later + aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*) + ac_cv_sys_large_files=1 ;; + esac]) + fi + ]) diff -uNr dpkg-1.9.20/configure.in dpkg-1.9.20.steve/configure.in --- dpkg-1.9.20/configure.in Fri Feb 1 18:18:38 2002 +++ dpkg-1.9.20.steve/configure.in Mon Apr 8 00:47:32 2002 @@ -67,6 +67,11 @@ VERSION=`cat $srcdir/version-nr` AC_SUBST(VERSION) +dnl This test must come as early as possible after the compiler configuration +dnl tests, because the choice of the file model can (in principle) affect +dnl whether functions and headers are available, whether they work, etc. +AC_SYS_LARGEFILE + dnl test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) diff -uNr dpkg-1.9.20/utils/md5sum.c dpkg-1.9.20.steve/utils/md5sum.c --- dpkg-1.9.20/utils/md5sum.c Sat Apr 28 22:22:51 2001 +++ dpkg-1.9.20.steve/utils/md5sum.c Mon Apr 8 01:16:18 2002 @@ -13,14 +13,15 @@ * to support GNU gettext. * This file is in the public domain. */ + +#include "config.h" + #include <stdio.h> #include <stdlib.h> #include <string.h> #include <getopt.h> #include <unistd.h> -#include "config.h" - /* Take care of NLS matters. */ #if HAVE_LOCALE_H

