[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: new e2fsprogs & partitions > than 2gig?



   Date: Mon, 20 Oct 1997 23:03:10 +0200
   From: Yann Dirson <dwitch@monge.univ-mlv.fr>

   But there is a big difference: 1.10-4 failed because I compiled it
   with libc6, without being aware of the llseek() prototyping problem;
   1.10-6 is compiled with LIBC5, not libc6, and incorporates patches
   which proved to solve the problem when compiling with libc6 (1.10-5.1) !!

   After looking at my system, it seems that libc5_5.4.33-5 doesn't have
   a prototype for llseek() either !!!  Can someone tell when it did
   disappear ?  I just can find the syscall defined, but get no
   libc-level interface:

Wonderful!  Screwed by the libc folks *again*.  Fortunately, RedHat is
much more conservative about its libc choices, so I haven't gotten hit
with this one yet.

Anyway, I've placed the following test into configure.in which should
solve the problem once and for all:

dnl
dnl Check to see if llseek() is declared in unistd.h.  On some libc's 
dnl it is, and on others it isn't..... Thank you glibc developers....
dnl
dnl Warning!  Use of --enable-gcc-wall may throw off this test.
dnl
dnl
AC_MSG_CHECKING(whether llseek declared in unistd.h)
AC_CACHE_VAL(e2fsprogs_cv_have_llseek_prototype,
	AC_TRY_COMPILE(
[#include <unistd.h>], [extern int llseek(int);],
	[e2fsprogs_cv_have_llseek_prototype=no],
	[e2fsprogs_cv_have_llseek_prototype=yes]))
AC_MSG_RESULT($e2fsprogs_cv_have_llseek_prototype)
if test "$e2fsprogs_cv_have_llseek_prototype" = yes; then
   AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)
fi

Then in llseek.c, you just need this:

#ifndef HAVE_LLSEEK_PROTOTYPE
extern long long llseek (int fd, long long offset, int origin);
#endif

						- Ted


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .


Reply to: