Bug #66103 [Com]: Cross-compiling not supported

From: Date: Fri, 05 Feb 2016 16:11:13 +0000
Subject: Bug #66103 [Com]: Cross-compiling not supported
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-199069@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=66103&edit=1 ID: 66103 Comment by: ttilley at sonusnet dot com Reported by: rmarku at gmail dot com Summary: Cross-compiling not supported Status: Open Type: Bug Package: opcache Operating System: Linux PHP Version: 5.5.6 Block user comment: N Private report: N New Comment: Fails with PHP 7.0.2/OpenWRT as well, and disabling opcache isn't an acceptable option as the enhanced opcache performance is a major reason to want PHP 7. Obviously the test program can't be run in a cross-compile - the configure script should be modified to take flock_type as an input variable to support cross-compiling. If the input variable is set then don't bother with the test program. Previous Comments: ------------------------------------------------------------------------ [2014-12-21 18:22:42] avarsanov at yahoo dot com "checking "whether flock struct is linux ordered"... "no" checking "whether flock struct is BSD ordered"... "no" configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no" I had the same error, while compiling PHP (5.6.4, but that does not matter, because I tried als PHP 5.6.3 and was reproducable) on Debian GNU/Linux. I saw that problem when I forgot to set LD_LIBRARY_PATH environment variable. So doing it like that solved my problem: $ export LD_LIBRARY_PATH=/usr/local/mysql/lib $ ./configure --enable-fpm --with-mcrypt --with-zlib --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --enable-sockets --enable-zip --with-fpm-user=www-data --with-fpm-group=www-data --with-mysql=/usr/local/mysql/ $ make $ make test # export LD_LIBRARY_PATH=/usr/local/mysql/lib # make install ------------------------------------------------------------------------ [2014-08-09 23:09:19] bos at je-eigen-domein dot nl Same problem. In ZendAccelerator.h it looks for the presence of other defines such as __linux__ first to determine flock order, in favor of the results of the test (HAVE_FLOCK_LINUX) So why is not being able to run the test fatal? == # if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || (defined(__APPLE__) && defined(__MACH__)/* Darwin */) || defined(__OpenBSD__) || defined(__NetBSD__) # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {start, len, -1, type, whence} # elif defined(__svr4__) # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {type, whence, start, len} # elif defined(__linux__) || defined(__hpux) || defined(__GNU__) # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {type, whence, start, len, 0} # elif defined(_AIX) # if defined(_LARGE_FILES) || defined(__64BIT__) # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {type, whence, 0, 0, 0, start, len } # else # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {type, whence, start, len} # endif # elif defined(HAVE_FLOCK_BSD) # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {start, len, -1, type, whence} # elif defined(HAVE_FLOCK_LINUX) # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {type, whence, start, len} # else # error "Don't know how to define struct flock" # endif #endif == ------------------------------------------------------------------------ [2013-12-09 15:38:31] hdboeve at boevewebdevelopment dot nl Same error, on OS X Mavericks: checking for sysvipc shared memory support... no checking for mmap() using MAP_ANON shared memory support... no checking for mmap() using /dev/zero shared memory support... no checking for mmap() using shm_open() shared memory support... no checking for mmap() using regular file shared memory support... no checking "whether flock struct is linux ordered"... "no" checking "whether flock struct is BSD ordered"... "no" configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no ------------------------------------------------------------------------ [2013-11-15 20:13:32] rmarku at gmail dot com Description: ------------ Cross-compiling not supported I'm trying to cross-compile PHP 5.5.6 with OpenWRT buildroot. If I disable OPcache, everything goes well. with OPcache enabled, configure hangs with this error. ... checking for mcrypt_module_open in -lmcrypt... yes checking for MSSQL support via FreeTDS... no checking for MySQL support... yes, shared checking for specified location of the MySQL UNIX socket... no checking for mysql_close in -lmysqlclient... yes checking for MySQL UNIX socket location... no checking for MySQLi support... yes, shared checking whether to enable embedded MySQLi support... no checking for mysql_set_server_option in -lmysqlclient... yes checking for mysql_set_character_set in -lmysqlclient... yes checking for mysql_stmt_next_result in -lmysqlclient... no checking for Oracle Database OCI8 support... no checking whether to enable Zend OPcache support... yes checking for mprotect... yes checking for sysvipc shared memory support... no checking for mmap() using MAP_ANON shared memory support... no checking for mmap() using /dev/zero shared memory support... no checking for mmap() using shm_open() shared memory support... no checking for mmap() using regular file shared memory support... no checking "whether flock struct is linux ordered"... configure: error: in `/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/php-5.5.6': configure: error: cannot run test program while cross compiling See `config.log' for more details ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=66103&edit=1

« previous php.bugs (#199069) next »