This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ANN] apache_1.3.22 package available for setup inclusion

On the location of DLLs:
   I agree with Corinna that "inherently linked" DLL's should be in 
/usr/bin, and should be named "cygXXXXX.dll" not "libXXXXX.dll". 
However, I don't think it TRULY matters where dlopen'ed DLLs live -- 
except that users should not have to add /usr/libexec (or 
/usr/lib/perl5/cygwin-multi/auto/ByteLoader/ and 
/usr/lib/perl5/cygwin-multi/auto/Data/Dumper/ and ...) to their path. 
Also, I do not think that private, dlopened, 
not-in-the-public-bin-directory DLLs should be forced to follow the 
cygXXXX.dll nomenclature.  XXXX.dll, libXXXX.dll, whatever.  They're 
*private* -- who cares what they are named (although .dll is kindof a 
necessity due to windows runtime loader and dlopen issues)

The fact is, many packages put private, non-linkable, 
unusable-except-by-themselves shared libs into some private structure. 
Like perl does.  This is okay, IMO.

However, packages that do this should not require "external assistance" 
to find those dlopen'ed shared libs.  Either they should be dlopen'ed 
using the full path, or main() should add the requisite directories to 
the PATH -- but only for its process space, not globally.

So, IMO it's fine if apache puts its private, dlopen'ed DLLs into 
/usr/libexec/apache/modules or whereever -- but it should not require 
that /usr/libexec/apache/modules be added to the global PATH.

Now, if apache's httpd.exe is inherently linked to LOTS of mod_*.dll 
shared libs -- instead of dlopen'ing them -- then I think that's a poor 
design decision and apache needs a bit more work to change that to using 
dlopen for the module-related DLL's...otherwise, where's the benefit of 
using DLL's?  You still need to relink httpd.exe every time you add a 
new module...might as well use static libs.


Corinna Vinschen wrote:

> On Wed, Jan 09, 2002 at 04:17:54PM +0100, Stipe Tolj wrote:
>>>  --prefix=/usr
>>>  --sysconfdir=/etc
>>>  --libexecdir='$(sbindir)'
>>>  --localstatedir=/var
>>>  --datadir='$(prefix)/share'
>>>I'd agree to change the sysconfdir to sth. below /etc as /etc/httpd
>>>but I don't see a reason to change libexecdir.
>>So you want to keep the *.dlls in /usr/libexec?
> No.  See my other mail.  What I meant was, $libexecdir should be
> == $sbindir == $(prefix)/sbin == /usr/sbin.
> DLLs to
> /usr/lib	if run time loaded with e.g. dlopen()
> /usr/bin	if inherently linked in.
> Basically I don't want /usr/libexec in the users path.
> Corinna

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]