You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by David Reid <dr...@jetnet.co.uk> on 2001/04/17 00:43:36 UTC

[PATCH] Build process

Folks,

At ApacheCon I talked to a few people about altering the way the build
process is done in apache.  There was general agreement on the principal,
and here is the patch.

http://www.apache.org/~dreid/diffs

The reason for the change may not be apparent to a lot of people 9from my
conversations it's not) so I'll try to explain.

On some platforms ("brain dead" may well describe them) in order to build a
DSO we need to provide FULL link details in one way or another.  On some
platforms it needs a complete list of symbols (AIX) and on others it needs
to be able to resolve all symbols at link time.  In fact on BeOS it's even
more bizarre (well you'd have guessed that wouldn't you??).

The solution to a lot of these seems to be to change the build process to 2
stages.

At present when we do a build we make every object we need in the sub
directories, static or shared.  In reality we only need to make the static
objects as the aim of the make is to get the httpd executable.  This becomes
our first step.  Simply go through and make all static objects and link the
httpd and support binaries.

Step 2 we simply walk the directory structure and build all the shared
objects we need.  Before and after we do this we have an opportunity to have
a platform specific command executed.  The intent of these commands is where
we get a lot of the flexibility that this patch offers.  On AIX we can
generate our list of symbols direct from the httpd binary, on BeOS we can
create and destroy the link we'll link against, on other platforms we can do
whatever is required.

If we aren't doing any shared object builds then we don't even consider step
2, simply do step 1 and so nothing changes.

This has been tested on FreeBSD 4.3 and BeOS so far and Victor has used to
on AIX (with I think some success).

If I don't hear any violent concerns I'll commit before I go to Denver on
Thursday.

david



Re: [PATCH] Build process

Posted by "Victor J. Orlikowski" <v....@gte.net>.
If only I could vote... :)
At any rate, I'll give a vote of confidence for it. Need to test it on
Linux, though.

Victor
-- 
Victor J. Orlikowski
======================
v.j.orlikowski@gte.net
orlikowski@apache.org
vjo@us.ibm.com


Re: [PATCH] Build process

Posted by rb...@covalent.net.
+1 for the theory, +0.5 for the approach.  The only reason I didn't give
the patch a +1, is that I hate Makefiles, and I don't feel utterly
confidant reviewing this patch.  :-)

Ryan

On Mon, 16 Apr 2001, David Reid wrote:

> Folks,
>
> At ApacheCon I talked to a few people about altering the way the build
> process is done in apache.  There was general agreement on the principal,
> and here is the patch.
>
> http://www.apache.org/~dreid/diffs
>
> The reason for the change may not be apparent to a lot of people 9from my
> conversations it's not) so I'll try to explain.
>
> On some platforms ("brain dead" may well describe them) in order to build a
> DSO we need to provide FULL link details in one way or another.  On some
> platforms it needs a complete list of symbols (AIX) and on others it needs
> to be able to resolve all symbols at link time.  In fact on BeOS it's even
> more bizarre (well you'd have guessed that wouldn't you??).
>
> The solution to a lot of these seems to be to change the build process to 2
> stages.
>
> At present when we do a build we make every object we need in the sub
> directories, static or shared.  In reality we only need to make the static
> objects as the aim of the make is to get the httpd executable.  This becomes
> our first step.  Simply go through and make all static objects and link the
> httpd and support binaries.
>
> Step 2 we simply walk the directory structure and build all the shared
> objects we need.  Before and after we do this we have an opportunity to have
> a platform specific command executed.  The intent of these commands is where
> we get a lot of the flexibility that this patch offers.  On AIX we can
> generate our list of symbols direct from the httpd binary, on BeOS we can
> create and destroy the link we'll link against, on other platforms we can do
> whatever is required.
>
> If we aren't doing any shared object builds then we don't even consider step
> 2, simply do step 1 and so nothing changes.
>
> This has been tested on FreeBSD 4.3 and BeOS so far and Victor has used to
> on AIX (with I think some success).
>
> If I don't hear any violent concerns I'll commit before I go to Denver on
> Thursday.
>
> david
>
>
>


_______________________________________________________________________________
Ryan Bloom                        	rbb@apache.org
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------