You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by hiten pandya <hp...@lycos.co.uk> on 2001/10/07 16:28:04 UTC

DSO

greetings,

i am trying to fix the problem regarding:

adding a LoadModule directive when user selects any module 
as a DSO.

When i was going throught the configure script, it had two 
lines like the following:

ac_help="$ac_help
 --enable-so DSO capability"
ac_help="$ac_help
 --enable-so DSO capability"

Can someone please explain me why there is a need for two 
of them lines. I didnt know if there was a need to submit 
a patch for this.

thank You,

Greetings

Hiten Pandya


Hiten Pandya
hpandya@lycos.co.uk

Reply-To:
hpandya@lycos.co.uk
______________________________________________________
Free E-mail - Lycos UK - http://www.lycos.co.uk
Get your domain for £9.90 - http://lycos.uk.domainnames.com/default.asp?caller=lycos_ef
Play now to win £1 Million - http://ad.uk.doubleclick.net/clk;3386758;6457074;y?http://www.thedailydraw.com/mainframe.cfm?source=lycos


Re: [PATCH] enable mod_so by default [Was: DSO]

Posted by Justin Erenkrantz <je...@ebuilt.com>.
On Tue, Oct 09, 2001 at 10:55:44AM -0700, Aaron Bannert wrote:
> I think this patch would do that. One should be able to do --disable-so
> to turn it off, and by default it will be built.
> 
> My only worry is that this will break out-of-the-box builds for platforms
> that aren't supported under apr_dso.h. Are any of our apache-supported
> platforms not supported under apr_dso.h?

Committed with an additional APR_HAS_DSO check which should resolve
the above concern.  Please verify that I didn't do something 
stupid.  =)

Thanks.  -- justin


Re: [PATCH] enable mod_so by default [Was: DSO]

Posted by Cliff Woolley <cl...@yahoo.com>.
On Tue, 9 Oct 2001, Aaron Bannert wrote:

> I think this patch would do that. One should be able to do --disable-so
> to turn it off, and by default it will be built.
>
> My only worry is that this will break out-of-the-box builds for platforms
> that aren't supported under apr_dso.h. Are any of our apache-supported
> platforms not supported under apr_dso.h?

-0 ... I think the minimal default build should be a set of modules that
can be considered tight, reliable, and secure.  mod_so doesn't fit that
bill IMO, not because of its implementation but just the whole loadable
module concept.  Maybe that's just me, but I doubt it...

--Cliff

--------------------------------------------------------------
   Cliff Woolley
   cliffwoolley@yahoo.com
   Charlottesville, VA



[PATCH] enable mod_so by default [Was: DSO]

Posted by Aaron Bannert <aa...@clove.org>.
On Tue, Oct 09, 2001 at 07:15:26AM -0400, Jeff Trawick wrote:
> It sounds reasonable to me to build mod_so by default, but I think
> that the builder should be able to turn off mod_so.
> 
> Somebody putting together a package for distribution/support ought to
> be able to decide what modules they are willing to deal with, and
> mod_so opens up everything.  I doubt that a commercial vendor would
> make such a decision, but certainly within an organization it might
> make sense.  I bet a lot of companies would like a build of IIS to
> put on their employees' machines which could not be made to do
> anything other than serve static pages :)

I think this patch would do that. One should be able to do --disable-so
to turn it off, and by default it will be built.

My only worry is that this will break out-of-the-box builds for platforms
that aren't supported under apr_dso.h. Are any of our apache-supported
platforms not supported under apr_dso.h?

-aaron


Index: modules/mappers/config9.m4
===================================================================
RCS file: /home/cvspublic/httpd-2.0/modules/mappers/config9.m4,v
retrieving revision 1.5
diff -u -r1.5 config9.m4
--- modules/mappers/config9.m4	2001/10/03 17:47:51	1.5
+++ modules/mappers/config9.m4	2001/10/09 17:48:21
@@ -17,11 +17,8 @@
   APR_ADDTO(CFLAGS,-DNO_DBM_REWRITEMAP)
 ])
 
-if test "$sharedobjs" = "yes"; then
-    APACHE_MODULE(so, DSO capability, , , static)
-else
-    APACHE_MODULE(so, DSO capability, , , no)
-fi
+APACHE_MODULE(so, DSO capability, , , static)
+
 dnl ### why save the cache?
 AC_CACHE_SAVE
 

Re: DSO

Posted by Jeff Trawick <tr...@attglobal.net>.
Justin Erenkrantz <je...@ebuilt.com> writes:

> On Sun, Oct 07, 2001 at 08:31:16AM -0700, Aaron Bannert wrote:
> > I propose we simply get rid of the "if test" in the above code snippit,
> > and default to "static" for mod_so, since by default we have some
> > modules already turned on.  Alternatively we could default to "no"
> > and simply set "enable_so=yes" as soon as any APACHE_MODULE call ends
> > in something non-"no".
> 
> Well, I'm kind of thinking we should always build mod_so.  I've run 
> into the case where I haven't built any shared core libraries (i.e.
> in the tree), but have wanted to install a "separate" module (i.e. 
> mod_webapp) which must be built as shared.  Since I didn't compile 
> in mod_so, I needed to do a full recompile to enable mod_so.  Yuck.

It sounds reasonable to me to build mod_so by default, but I think
that the builder should be able to turn off mod_so.

Somebody putting together a package for distribution/support ought to
be able to decide what modules they are willing to deal with, and
mod_so opens up everything.  I doubt that a commercial vendor would
make such a decision, but certainly within an organization it might
make sense.  I bet a lot of companies would like a build of IIS to
put on their employees' machines which could not be made to do
anything other than serve static pages :)

-- 
Jeff Trawick | trawick@attglobal.net | PGP public key at web site:
       http://www.geocities.com/SiliconValley/Park/9289/
             Born in Roswell... married an alien...

Re: DSO

Posted by Greg Stein <gs...@lyra.org>.
On Tue, Oct 09, 2001 at 06:32:22AM -0700, Ryan Bloom wrote:
> On Monday 08 October 2001 08:21 pm, Justin Erenkrantz wrote:
>...
> > So, +1 on removing the test and always building mod_so if the
> > platform has shared object support - can we check that?  -- justin

+1 on compiling mod_so by default, per the other parts of this thread (that
is: check APR_HAS_DSO).

> There are a lot of people who dislike DSO's, and there are companies who
> refuse to use them for security reasons.  I have had a couple of major
> companies tell me that they want everything compiled statically.

./configure --disable-so

Not a problem.

> As for the test, we should just do what we do for DAV.

Ryan is referring to these lines:

if test "$enable_http" = "no"; then
  dav_enable=no
else
  dav_enable=most
fi

APACHE_MODULE(dav, WebDAV protocol handling, $dav_objects, , $dav_enable)
    

IOW, just compute the default rather than using a hard-coded string. It
works just as well.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Re: DSO

Posted by Ryan Bloom <rb...@covalent.net>.
On Monday 08 October 2001 08:21 pm, Justin Erenkrantz wrote:
> On Sun, Oct 07, 2001 at 08:31:16AM -0700, Aaron Bannert wrote:
> > I propose we simply get rid of the "if test" in the above code snippit,
> > and default to "static" for mod_so, since by default we have some
> > modules already turned on.  Alternatively we could default to "no"
> > and simply set "enable_so=yes" as soon as any APACHE_MODULE call ends
> > in something non-"no".
>
> Well, I'm kind of thinking we should always build mod_so.  I've run
> into the case where I haven't built any shared core libraries (i.e.
> in the tree), but have wanted to install a "separate" module (i.e.
> mod_webapp) which must be built as shared.  Since I didn't compile
> in mod_so, I needed to do a full recompile to enable mod_so.  Yuck.
>
> So, +1 on removing the test and always building mod_so if the
> platform has shared object support - can we check that?  -- justin

There are a lot of people who dislike DSO's, and there are companies who
refuse to use them for security reasons.  I have had a couple of major
companies tell me that they want everything compiled statically.

As for the test, we should just do what we do for DAV.

Ryan

______________________________________________________________
Ryan Bloom				rbb@apache.org
Covalent Technologies			rbb@covalent.net
--------------------------------------------------------------

Re: DSO

Posted by Rodent of Unusual Size <Ke...@Golux.Com>.
Justin Erenkrantz wrote:
> 
> So, +1 on removing the test and always building mod_so if the
> platform has shared object support - can we check that?

Why not just drag it back into the core, then?
-- 
#ken	P-)}

Ken Coar, Sanagendamgagwedweinini  http://Golux.Com/coar/
Author, developer, opinionist      http://Apache-Server.Com/

"All right everyone!  Step away from the glowing hamburger!"

Re: DSO

Posted by Justin Erenkrantz <je...@ebuilt.com>.
On Mon, Oct 08, 2001 at 09:53:52PM -0700, Aaron Bannert wrote:
> It would make sense to have it default to "static", allowing it to be
> explicitly disabled if desired -- for example if someone were building an
> exotic port or if they wanted to trim out all but the most necessary core.

Yeah, that's what I meant.  =)

> > So, +1 on removing the test and always building mod_so if the
> > platform has shared object support - can we check that?  -- justin
> 
> APR_HAS_DSO  ?

That's a #define that'd need to be checked at configure time.
Yeah, that'll work since httpd is configured after APR.  =)

Please submit a patch if possible...  

I'm way too tired to figure this out now.  -- justin


Re: DSO

Posted by Aaron Bannert <aa...@clove.org>.
> Well, I'm kind of thinking we should always build mod_so.  I've run 
> into the case where I haven't built any shared core libraries (i.e.
> in the tree), but have wanted to install a "separate" module (i.e. 
> mod_webapp) which must be built as shared.  Since I didn't compile 
> in mod_so, I needed to do a full recompile to enable mod_so.  Yuck.

It would make sense to have it default to "static", allowing it to be
explicitly disabled if desired -- for example if someone were building an
exotic port or if they wanted to trim out all but the most necessary core.

> So, +1 on removing the test and always building mod_so if the
> platform has shared object support - can we check that?  -- justin

APR_HAS_DSO  ?

-aaron

Re: DSO

Posted by Justin Erenkrantz <je...@ebuilt.com>.
On Sun, Oct 07, 2001 at 08:31:16AM -0700, Aaron Bannert wrote:
> I propose we simply get rid of the "if test" in the above code snippit,
> and default to "static" for mod_so, since by default we have some
> modules already turned on.  Alternatively we could default to "no"
> and simply set "enable_so=yes" as soon as any APACHE_MODULE call ends
> in something non-"no".

Well, I'm kind of thinking we should always build mod_so.  I've run 
into the case where I haven't built any shared core libraries (i.e.
in the tree), but have wanted to install a "separate" module (i.e. 
mod_webapp) which must be built as shared.  Since I didn't compile 
in mod_so, I needed to do a full recompile to enable mod_so.  Yuck.

So, +1 on removing the test and always building mod_so if the
platform has shared object support - can we check that?  -- justin


Re: DSO

Posted by Aaron Bannert <aa...@clove.org>.
On Sun, Oct 07, 2001 at 07:28:32AM -0700, hiten pandya wrote:
> greetings,
> 
> i am trying to fix the problem regarding:
> 
> adding a LoadModule directive when user selects any module 
> as a DSO.
> 
> When i was going throught the configure script, it had two 
> lines like the following:
> 
> ac_help="$ac_help
>  --enable-so DSO capability"
> ac_help="$ac_help
>  --enable-so DSO capability"
> 
> Can someone please explain me why there is a need for two 
> of them lines. I didnt know if there was a need to submit 
> a patch for this.

Hi Hiten,

You have a good point. The problem is comming from somewhere else
(the "configure" script is automatically generated by autoconf).
(see modules/mappers/config9.m4:20):

if test "$sharedobjs" = "yes"; then
    APACHE_MODULE(so, DSO capability, , , static)
else
    APACHE_MODULE(so, DSO capability, , , no)
fi

See, we want to be able to have it work when we do ./configure --help, but
we don't know at that time if we want it to default to "static" or "no".
So what ends up happening is each of those APACHE_MODULE declarations
will add their own ac_help thing as you showed above at ./buildconf-time,
but by the time we've already run ./configure it will decide if it needs
to be "static" or "no" by default.

I propose we simply get rid of the "if test" in the above code snippit,
and default to "static" for mod_so, since by default we have some
modules already turned on.  Alternatively we could default to "no"
and simply set "enable_so=yes" as soon as any APACHE_MODULE call ends
in something non-"no".

-aaron

p.s. about the adding LoadModule statements to the httpd.conf output problem,
I have a partial fix in my tree right now that I expect to get working real
soon and posted, but you're welcome to hack on it too. Contact me offlist
if you want to see what I have so far. :)