ID:               48989
 User updated by:  lcoffin at cio dot com
-Summary:          --with-axps2 and --enable-embed incompatible
 Reported By:      lcoffin at cio dot com
 Status:           Bogus
 Bug Type:         Unknown/Other Function
 Operating System: Ubuntu 8.04
 PHP Version:      5.3.0
 New Comment:

Sorry, I'm used to the "here's everything I want, now build it" kind of
thinking -- i.e. "I want the CLI, the Apache module, and an embeddable
library". This "rebuild for each use" isn't what I was expecting and
seems *very* cumbersome to maintain -- I have to remember multiple sets
of config options and each time I upgrade PHP I have to remember to
configure/build each one. Having the ability to specify and build
everything at once would be really handy.

At the very least, configure should thow a warning if not a downright
error when conflicting flags are given -- *something* to indicate it's
not going to do what it's been asked to do. It would have saved me a
*ton* of wasted time trying to figure this out. I'm old school enough --
I've worked with so many packages over the years that install things in
the oddest of places -- that when I see that a package has built a
'libphp5.so' and I've got another package trying to link with -lphp5, I
go looking for said 'libphp5.so' in the system... When I find it in an
unexpected place (not in /lib, /usr/lib, etc.) I just assume the
installer is "special" and decided to install it in its own special
place so I create a sym link in the appropriate place for use with other
packages. Perhaps it would make more sense to name the libraries
appropriately? I.e. libphp5apxs.so, libphp5embed.so? I mean 'libphp5.so'
should be *exactly* the same as 'libphp5.so' shouldn't it? libjpeg is
libjpeg ... libperl is libperl.

Anyway... just some thoughts...

-L


Previous Comments:
------------------------------------------------------------------------

[2009-07-21 12:59:42] j...@php.net

You can't build multiple SAPIs. You're building an Apache SAPI here.
--enable-embed is simply ignored. (alphabetical order, A comes before E
:)

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

[2009-07-20 16:13:16] lcoffin at cio dot com

Description:
------------
If --with-apxs2 is included with --enable-embed then the resulting
library can't be used with embedded applications. Trying to build an app
(plphp-1.3.5 and plphp-1.3.3) that embeds PHP results in a number of
lines like:

/usr/local/lib/libphp5.so: undefined reference to `apr_brigade_create'
/usr/local/lib/libphp5.so: undefined reference to
`apr_bucket_eos_create'
/usr/local/lib/libphp5.so: undefined reference to
`apr_brigade_cleanup'
/usr/local/lib/libphp5.so: undefined reference to `ap_auth_type'

If --with-apxs2 is left off of the PHP build, the embedding app
compiles just fine.

Not sure if this is a bug per-se, or a problem with not including
enough libraries (the apache libs?) when compiling the embedding app, or
if there needs to be a check in ./configure that flags the invalid
combination and doesn't allow ./configure to complete.

But now I seem to be stuck with the problem of needing to have two
"versions" of php -- compile once with --with-apxs2 and once with
--enable-embed. And I'm not sure which one I should do first, which one
I should do second, and what the implications are (i.e. if the CLI
version of php needs to be one vs the other. Or if Apache will stop
working if the --enable-embed one is the second compile.)


Reproduce code:
---------------
cd /usr/src/php-5.3.0
./configure --with-apxs2="..." --enable-embed (other options)
make && make install
cd /usr/src/plphp-1.3.5/trunk
./configure  (configure fails... config.log shows above errors)

cd /usr/src/php-5.3.0
./configure --enable-embed (other options)
make && make install
cd /usr/src/plphp-1.3.5/trunk
./configure  (succeeds)



Expected result:
----------------
Expected plphp/configure to succeed

Actual result:
--------------
plphp/configure fails with:

/usr/local/lib/libphp5.so: undefined reference to `apr_brigade_create'
/usr/local/lib/libphp5.so: undefined reference to
`apr_bucket_eos_create'
/usr/local/lib/libphp5.so: undefined reference to
`apr_brigade_cleanup'
/usr/local/lib/libphp5.so: undefined reference to `ap_auth_type'

... etc.



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


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

Reply via email to