You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Justin Erenkrantz <je...@apache.org> on 2002/05/06 01:07:06 UTC

Self-contained modules?

Got a bit of an interesting problem I encountered with Darwin and
building PHP the other day.  I brought this up on the php-dev list
and I'd like to consider what our options are to fixing this.

First off, Darwin requires that all modules be self-contained by
default.  So, if we try to build with PHP with apxs, we will get
symbol not defined errors for all of the apr and apr-util functions.

This can be turned off by -flat_namespace -undefined suppress - see
<B7...@covalent.net>.  But, for certain reasons
the PHP developers would prefer to use bundles instead - the
approach Apple uses outlined in Sander's post above.  So, we have
a few alternatives and I'd like to post them here to see what we
think the preferred solution is before replying on php-dev.

1) Tell PHP tough - they must use -flat_namespace.  Problem solved.
2) Teach PHP about apr-config and apu-config so that they know
where APR is and can link them when building the module.  I think
the problem would be solved.
3) Have APXS expose apr and apr-util in a consistent manner so
that it is possible to build self-contained libraries.

In email exchanges with a PHP developer (Marko?), he really didn't
like option 1 or 2.  He would like to see #3.  Personally, I say
#2, but I'd like to see what everyone else thinks.  -- justin

Re: Self-contained modules?

Posted by Pier Fumagalli <pi...@betaversion.org>.
"Justin Erenkrantz" <je...@apache.org> wrote:

> Got a bit of an interesting problem I encountered with Darwin and
> building PHP the other day.  I brought this up on the php-dev list
> and I'd like to consider what our options are to fixing this.
> 
> First off, Darwin requires that all modules be self-contained by
> default.  So, if we try to build with PHP with apxs, we will get
> symbol not defined errors for all of the apr and apr-util functions.
> 
> This can be turned off by -flat_namespace -undefined suppress - see
> <B7...@covalent.net>.  But, for certain reasons
> the PHP developers would prefer to use bundles instead - the
> approach Apple uses outlined in Sander's post above.  So, we have
> a few alternatives and I'd like to post them here to see what we
> think the preferred solution is before replying on php-dev.
> 
> 1) Tell PHP tough - they must use -flat_namespace.  Problem solved.
> 2) Teach PHP about apr-config and apu-config so that they know
> where APR is and can link them when building the module.  I think
> the problem would be solved.
> 3) Have APXS expose apr and apr-util in a consistent manner so
> that it is possible to build self-contained libraries.
> 
> In email exchanges with a PHP developer (Marko?), he really didn't
> like option 1 or 2.  He would like to see #3.  Personally, I say
> #2, but I'd like to see what everyone else thinks.  -- justin

Hmm... AFAIK, building mod_webapp, libtool under darwin has several troubles
in linking against a static and a dynamic library (two at the same time)...
It simply doesn't want to pass the stupid -all_load parameter to the
compiler.

Under WebApp we solved it by not creating AR libraries, but simply linking
all the .lo files all together with APXS (see my latest patches on that),
and of course, the idiot won't build a dso with all symbols correctly
referenced if you don't build a library named libsomething.la...

Go figure, libtool sucks.

BTW, related to this, anyone tried to build mod_proxy under Darwin?

    Pier




--
I think that it's extremely foolish to name a server after the current U.S.
President.                                                 B.W. Fitzpatrick