Edit report at https://bugs.php.net/bug.php?id=45942&edit=1

 ID:                 45942
 Comment by:         jhuckaby at gmail dot com
 Reported by:        jhuckaby at gmail dot com
 Summary:            D_FILE_OFFSET_BITS=64 causes PHP to run at half
                     speed
 Status:             Closed
 Type:               Bug
 Package:            Performance problem
 Operating System:   Fedora Core 6
 PHP Version:        5.2.6
 Block user comment: N
 Private report:     N

 New Comment:

Just a follow-up note.  I was wrong about closing the bug.  This is still an 
open 
issue.  When using AC_SYS_LARGEFILE, PHP still fails to write more than 2 GB to 
a 
file -- it just doesn't throw any kind of error.

To this day, even with PHP 5.3.6, the only way to get true large file support 
seems to be adding the -D_FILE_OFFSET_BITS=64 compile flag, which still causes 
a 
50% runtime performance penalty.


Previous Comments:
------------------------------------------------------------------------
[2008-09-03 21:05:03] jhuckaby at gmail dot com

This can be solved by using AC_SYS_LARGEFILE and a more modern operating 
system (tested with Mac OS X 10.5 and Fedora 9).  Apparently Fedora Core 
6 is too old to support the flag.  I am closing this bug.

------------------------------------------------------------------------
[2008-08-29 21:30:35] jhuckaby at gmail dot com

I should have also noted, this same error happens with 5.2.4 stable, 
5.2.6 stable, and the CVS daily snapshot build for Aug 29, 2008.

------------------------------------------------------------------------
[2008-08-29 21:27:01] jhuckaby at gmail dot com

Wait, I spoke too soon!  Please don't close the bug yet.  As soon as I 
removed the "--disable-all --disable-cgi" ./configure command-line 
options, I got this build error from the "make" step:

/home/jhuckaby/dev/3rdparty/source/apache-1.3/php-
5.2.7/ext/posix/posix.c: In function 'zif_posix_uname':
/home/jhuckaby/dev/3rdparty/source/apache-1.3/php-
5.2.7/ext/posix/posix.c:471: error: 'struct utsname' has no member 
named 'domainname'
make: *** [ext/posix/posix.lo] Error 1

I didn't add any new command-line options, I simply removed the "--
disable-all --disable-cgi".

./configure --with-apache=../apache_1.3.39 --prefix=/ipix/php --with-
config-file-path=/ipix/php/lib  --disable-all --disable-cgi

Any ideas?

Should I file this under a separate bug?

------------------------------------------------------------------------
[2008-08-29 20:28:04] jhuckaby at gmail dot com

Okay, I followed your instructions.  I added AC_SYS_LARGEFILE to configure.in, 
then ran ./buildconf --force.  Then I followed with ./configure..., make, and 
make install.  I found the following output from ./configure of interest:

checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... unknown
checking for _LARGE_FILES value needed for large files... unknown

Anyway, it compiled clean and installed.  And it seems to work correctly, 
writing >2GB large files without error AND the interpreter speed is fast!  
Thanks!

[root@dev-ops php-5.2.6]# /ipix/php/bin/php ~/benchmark.php 
CPU Benchmark: 310
[root@dev-ops php-5.2.6]# /ipix/php/bin/php ~/benchmark.php 
CPU Benchmark: 311
[root@dev-ops php-5.2.6]# /ipix/php/bin/php ~/benchmark.php 
CPU Benchmark: 312
[root@dev-ops php-5.2.6]# /ipix/php/bin/php ~/benchmark.php 
CPU Benchmark: 306
[root@dev-ops php-5.2.6]# /ipix/php/bin/php ~/benchmark.php 
CPU Benchmark: 311

I guess we can close this bug!

------------------------------------------------------------------------
[2008-08-29 19:03:20] crrodriguez at suse dot de

You dont pass D_FILE_OFFSET_BITS=64 directly, but add

AC_SYS_LARGEFILE

to configure.in then run ./buildconf --force and rebuild PHP.

BTW.. it is known that large file support may not work currenlty with PHP.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=45942


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=45942&edit=1

Reply via email to