|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2013-11-15 20:13 UTC] 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 Patchesflock-type-crosscompile.patch (last revision 2014-08-21 09:41 UTC by zboszor at pr dot hu)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Nov 03 09:00:02 2025 UTC |
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 ==all of these cross-compilation problems could easily be solved if php would use the cache variables feature for these variables as well so user can easily override the test from the commandline. example: ./configure ac_cv_crypt_SHA512=yes ac_cv_linux_lock=yes however due to lack of it, you need to either patch the configure script, or the configure.ac and rerun all the autoreconf stuff which is highly error prone due to all the involved m4 macros and different tool versions. note that the cache variable is used for the above SHA512 crypt check $as_echo_n "checking for SHA512 crypt... " >&6; } if ${ac_cv_crypt_sha512+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_crypt_sha512=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext but not for this check, the one for strcasestr and probably others. for comparison: { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strcasestr" >&5 $as_echo_n "checking for strcasestr... " >&6; } if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext