There are serious problems from enabling LFS support like this in a
project like PHP.

If I have some library which uses off_t in its API, e.g. zlib, and I
happened to not compile it with LFS support, e.g. as in most Linux
distributions, I now *cannot* call the zlib functions using off_t from
PHP, because the size of off_t when you #include <zlib.h> will be
different from the size when zlib is compiled.  Similar cases for any
SAPI module if the server interface exposes off_t.

The safe way of doing this which we use in APR 1.0 is to define a
wrapper type (e.g php_off_t) which is typedef'd to off64_t when
-D_LARGEFILE64_SOURCE is supported, and off_t otherwise, to open files
using O_LARGEFILE, and to use the "transitional LFS" functions like
lseek64 etc in place of lseek etc when php_off_t is off64_t.

----- Forwarded message from Edin Kadribasic <[EMAIL PROTECTED]> -----

From: "Edin Kadribasic" <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Date: Thu, 21 Oct 2004 23:57:39 -0000
Subject: [PHP-CVS] cvs: php-src(PHP_5_0) / configure.in  

edink           Thu Oct 21 19:57:39 2004 EDT

  Modified files:              (Branch: PHP_5_0)
    /php-src    configure.in 
  Log:
  MFB: Linux LFS support, fixes 27792
  
http://cvs.php.net/diff.php/php-src/configure.in?r1=1.514.2.11&r2=1.514.2.12&ty=u
Index: php-src/configure.in
diff -u php-src/configure.in:1.514.2.11 php-src/configure.in:1.514.2.12
--- php-src/configure.in:1.514.2.11     Tue Sep 28 05:13:32 2004
+++ php-src/configure.in        Thu Oct 21 19:57:37 2004
@@ -1,4 +1,4 @@
-dnl ## $Id: configure.in,v 1.514.2.11 2004/09/28 09:13:32 wez Exp $ -*- sh -*-
+dnl ## $Id: configure.in,v 1.514.2.12 2004/10/21 23:57:37 edink Exp $ -*- sh -*-
 dnl ## Process this file with autoconf to produce a configure script.
 
 divert(1)
@@ -196,6 +196,13 @@
     LIBS="$LIBS -lbe -lroot";;
 *mips*)
     CPPFLAGS="$CPPFLAGS -D_XPG_IV";;
+*linux*)
+    AC_MSG_CHECKING([for Linux LFS_CFLAGS])
+    LFS_LINUX_CFLAGS=`getconf LFS_CFLAGS`
+    if test "x$LFS_LINUX_CFLAGS" != "x"; then
+        CFLAGS="$CFLAGS $LFS_LINUX_CFLAGS"
+    fi
+    AC_MSG_RESULT([$LFS_LINUX_CFLAGS])
 esac
 
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

----- End forwarded message -----

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to