Edit report at https://bugs.php.net/bug.php?id=65207&edit=1
ID: 65207 Comment by: tgburrin at yahoo dot com Reported by: reh at hebis dot uni-frankfurt dot de Summary: OPCache can't be compiled with SolarisStudio Status: Open Type: Bug Package: Compile Failure Operating System: Solaris / Illumos PHP Version: 5.5.0 Block user comment: N Private report: N New Comment: reh's solution seems to work for me. After converting the \r\n's to \n and fixing the three spots (configure, ext/opcache/ZendAccelerator.h, and ext/opcache/config.m4) where the flock test is done, I was able to configure and build successfully. I haven't seen any issues so far. using Solaris Studio 12.3 on: # cc -V cc: Sun C 5.12 SunOS_i386 2011/11/16 # uname -a SunOS Heimdall 5.10 Generic_147148-26 i86pc i386 i86pc Previous Comments: ------------------------------------------------------------------------ [2013-07-05 19:31:36] reh at hebis dot uni-frankfurt dot de Last info before resigning. :-( Configure can't link to flock() > configure:19164: checking for flock > "conftest.c", line 161: warning: statement not reached > Undefined symbol first referenced in file > flock conftest.o Maybe someone smarter than me, may use the informations on http://www.perkin.org.uk/posts/solaris-portability-flock.html ------------------------------------------------------------------------ [2013-07-05 14:41:41] reh at hebis dot uni-frankfurt dot de FAILED TEST SUMMARY ... Test flock() function: Basic functionality [ext/standard/tests/file/flock_basic.phpt] Test flock() function: Variations [ext/standard/tests/file/flock_variation.phpt] ... ------------------------------------------------------------------------ [2013-07-05 14:17:13] reh at hebis dot uni-frankfurt dot de Today I was able too complete the build. I had to add some Lines in configure and ZendAccelerator.h. (corresponding to <sys/fcntl.h>) > # elif defined(__SVR4) > # define FLOCK_STRUCTURE(name, type, whence, start, len) \ > struct flock name = {type, whence, start, len, 0, 0, 0 } Also it was necessary to translate some files of ext/opcache/ with dos2unix. Maybe the problem has been long lines concatunated whith "\CRNL" instead of "\NL" Still it's a hack, not a tested solution. ;-) ------------------------------------------------------------------------ [2013-07-05 02:07:48] reh at hebis dot uni-frankfurt dot de Description: ------------ Configure tries to define a macro for the os dependent structure of flock. (lines 64988 to 65007) Using solarisstudio 12.3 as compiler, non of the pattern matches and configure suggests to disable OPCache Not really knowing what I'm doing, I tried to patch the line 64991 >From "# elif defined(__svr4__)" to "# elif defined(__svr4__) || defined(__SVR4)" This workaround is poor I know, but it seems to work, configure generates the Makefiles. The same construct can be found in ext/opcache/ZendAccelerator.h and for me it looks like that there were some other smells in the opcache package. Make still fails. Test script: --------------- Configure itself Actual result: -------------- Configure: checking for known struct flock definition... configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=65207&edit=1