#38997 [Opn-Bgs]: Cannot configure PHP for cross-compilation with Apache 2.2.3

2006-10-02 Thread tony2001
 ID:   38997
 Updated by:   [EMAIL PROTECTED]
 Reported By:  lstefani at fortresstech dot com
-Status:   Open
+Status:   Bogus
 Bug Type: *Configuration Issues
 Operating System: Linux 2.6.12
 PHP Version:  5.1.6
 New Comment:

If you want apxs utility to be enhanced - please report it as a feature
request to Apache developers.
There is nothing PHP can do about it.


Previous Comments:


[2006-10-02 14:29:37] lstefani at fortresstech dot com

Hi Tony,

I noticed that you marked the Status as Bogus.  If PHP isn't meant to
be cross-compiled, I have not found any online documentation supporting
that.  In fact, the --host= and --target= options within PHP 5.1.6's
configure script suggest that cross-compilation *is* supported.

Assuming I'm correct that cross-compilation is a feature of PHP, I
believe this bug should remain open.  Perhaps the Apache folks can
address this by making apxs truly platform independent, instead of
relying on binaries that may not necessarily be executable on the build
system (I've logged a bug against Apache 2.2.3 on same).

Alternatively, perhaps the PHP configure script can be enhanced to
support manual overrides of whatever is needed through the apxs -q
command to support cross-compilation?

Thanks,
Larry



[2006-09-29 21:24:17] lstefani at fortresstech dot com

Hi Tony,

Thanks for the quick response.  OK, so apxs and (indirectly) httpd must
be executable.  Am I correct in assuming that if I were to temporarily
install a native (X86) httpd to make PHP configure happy, I'd be in
trouble because the native compilation flags are (obviously) different
for the cross-compiled build?

Do you recommend that I attack this problem by removing the apxs
dependency and pass in all of the compilation flags, paths, etc. that
PHP needs to build the Apache module?

I'm highly motivated to make cross-compilation work because the
alternative is to install all of the source trees, toolchains, etc. on
the target platform and build natively.  That's just not practical for
my development environment.

Thanks,
Larry Stefani



[2006-09-29 20:29:02] [EMAIL PROTECTED]

PHP _does_ need to execute apxs to get correct compilation flags, paths
etc. required to compile Apache module. There is nothing we can do about
it.



[2006-09-29 19:18:28] lstefani at fortresstech dot com

Description:

After successfully cross-compiling Apache 2.2.3 on Linux x86 machine
for MIPS target, PHP fails to configure properly with --with-apxs2=
flag.  The reason for the failure is that PHP configure executes apxs
utility, which executes httpd, but that binary was cross-compiled, so
it fails to execute.

Reproduce code:
---
env ac_cv_func_fopencookie=no ac_cv_func_getaddrinfo=yes
ac_cv_func_utime_null=yes ac_cv_func_waitpid=yes ac_cv_pread=yes
ac_cv_pwrite=yes ac_cv_sizeof_long=4
ac_cv_php_xml2_config_path=/usr/apache/bin/xml2-config
PKG_CONFIG_PATH=/usr/apache/lib/pkgconfig
ac_cv_prog_CC=/buildtools/gcc-3.3.2-glibc-2.3.2/mips-linux/bin/mips-linux-gcc
./configure --host=mips-linux --target=mips-linux --without-iconv
--without-mysql --without-pear --enable-sigchild --enable-bcmath
--with-apxs2=/usr/apache/bin/apxs --with-libxml-dir=/usr/apache
--prefix=/usr/apache


Expected result:

Successful configuration of PHP for subsequent make operation.  When
configuring for cross-compilation, PHP configure should not be
dependent on natively executing binaries that were built for other
targets.  What information does PHP configure require of apxs and
httpd?  Is there an alternative way to retrieve it?

Actual result:
--
Configuring SAPI modules
checking for AOLserver support... no
checking for Apache 1.x module support via DSO through APXS... no
checking for Apache 1.x module support... no
checking for mod_charset compatibility option... no
checking for Apache 2.0 filter-module support via DSO through APXS...
no
checking for Apache 2.0 handler-module support via DSO through APXS...

Sorry, I cannot run apxs.  Possible reasons follow:

1. Perl is not installed
2. apxs was not found. Try to pass the path using
--with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is
displayed)

The output of /usr/apache/bin/apxs follows:
sh: /usr/apache/bin/httpd: cannot execute binary file
apxs:Error: Sorry, no shared object support for Apache.
apxs:Error: available under your platform. Make sure.
apxs:Error: the Apache module mod_so is compiled into.
apxs:Error: your server binary `/usr/apache/bin/httpd'..
configure: error: Aborting






-- 
Edit this bug report at 

#38997 [Opn-Bgs]: Cannot configure PHP for cross-compilation with Apache 2.2.3

2006-09-29 Thread tony2001
 ID:   38997
 Updated by:   [EMAIL PROTECTED]
 Reported By:  lstefani at fortresstech dot com
-Status:   Open
+Status:   Bogus
 Bug Type: *Configuration Issues
 Operating System: Linux 2.6.12
 PHP Version:  5.1.6
 New Comment:

PHP _does_ need to execute apxs to get correct compilation flags, paths
etc. required to compile Apache module. There is nothing we can do about
it.


Previous Comments:


[2006-09-29 19:18:28] lstefani at fortresstech dot com

Description:

After successfully cross-compiling Apache 2.2.3 on Linux x86 machine
for MIPS target, PHP fails to configure properly with --with-apxs2=
flag.  The reason for the failure is that PHP configure executes apxs
utility, which executes httpd, but that binary was cross-compiled, so
it fails to execute.

Reproduce code:
---
env ac_cv_func_fopencookie=no ac_cv_func_getaddrinfo=yes
ac_cv_func_utime_null=yes ac_cv_func_waitpid=yes ac_cv_pread=yes
ac_cv_pwrite=yes ac_cv_sizeof_long=4
ac_cv_php_xml2_config_path=/usr/apache/bin/xml2-config
PKG_CONFIG_PATH=/usr/apache/lib/pkgconfig
ac_cv_prog_CC=/buildtools/gcc-3.3.2-glibc-2.3.2/mips-linux/bin/mips-linux-gcc
./configure --host=mips-linux --target=mips-linux --without-iconv
--without-mysql --without-pear --enable-sigchild --enable-bcmath
--with-apxs2=/usr/apache/bin/apxs --with-libxml-dir=/usr/apache
--prefix=/usr/apache


Expected result:

Successful configuration of PHP for subsequent make operation.  When
configuring for cross-compilation, PHP configure should not be
dependent on natively executing binaries that were built for other
targets.  What information does PHP configure require of apxs and
httpd?  Is there an alternative way to retrieve it?

Actual result:
--
Configuring SAPI modules
checking for AOLserver support... no
checking for Apache 1.x module support via DSO through APXS... no
checking for Apache 1.x module support... no
checking for mod_charset compatibility option... no
checking for Apache 2.0 filter-module support via DSO through APXS...
no
checking for Apache 2.0 handler-module support via DSO through APXS...

Sorry, I cannot run apxs.  Possible reasons follow:

1. Perl is not installed
2. apxs was not found. Try to pass the path using
--with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is
displayed)

The output of /usr/apache/bin/apxs follows:
sh: /usr/apache/bin/httpd: cannot execute binary file
apxs:Error: Sorry, no shared object support for Apache.
apxs:Error: available under your platform. Make sure.
apxs:Error: the Apache module mod_so is compiled into.
apxs:Error: your server binary `/usr/apache/bin/httpd'..
configure: error: Aborting






-- 
Edit this bug report at http://bugs.php.net/?id=38997edit=1