delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/09/22/20:42:57

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <41521CB9.CCEFB0B@dessent.net>
Date: Wed, 22 Sep 2004 17:45:45 -0700
From: Brian Dessent <brian AT dessent DOT net>
Organization: My own little world...
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: New packge: lighttpd-1.3.0
References: <E1CA4ul-0006CO-00 AT mailhub-04 DOT inode DOT at> <41519C77 DOT 4080201 AT x-ray DOT at> <1656566026 DOT 20040922215552 AT familiehaase DOT de> <41520175 DOT AA068400 AT dessent DOT net> <618153225 DOT 20040923011821 AT familiehaase DOT de>
X-IsSubscribed: yes
Reply-To: cygwin AT cygwin DOT com

"Gerrit P. Haase" wrote:
> 
> Hello Brian,
> 
> >> I hate this package since I tried to build it the first time.
> 
> > Part of the problem here is that "We don't support building under
> > Cygwin" is the official line from php-dev.
> 
> Sigh;)
> 
> > I've got php-4.3.8 working fine as a DSO with Apache (a single 3.1M
> > chgphp4.dll.)  This works for whatever modules/extensions are statically
> > included, but obviously that's not quite acceptable.  If you
> > "--enable-foo=shared" you get a foo.a file in the modules dir, but this
> > is not a win32 executable and so it cannot be dlopen()'d.  I'm still
> > working on how to get these extension modules working, when I do I'll
> > ITP the whole batch.
> 
> If it works on Linux to get .so shared modules, why should it not work
> on Cygwin to get the modules the same way?
> 
> I have already half the way through, I'll hopefully get a shared
> library now and then I'll try to get the modules shared too.

FYI what I'm doing basically amounts to:

autoreconf  --verbose --force
./configure --prefix=/usr --with-layout=GNU --libexecdir=/usr/lib/apache
--sysconfdir=/etc/php4 --with-config-file-path=/etc/php4 \
   --infodir=/usr/share/info --mandir=/usr/share/man
--with-apxs=/usr/sbin/apxs \
   --disable-ipv6 --disable-debug --without-pear --disable-cli
--enable-sockets \
   --with-mysql --with-zlib --with-bz2 2>configure.stderr |tee
configure.stdout && \
make 2>make.stderr |tee make.stdout 
cd libs
../../mkdll.sh libphp4.la -L . -lphp4 -lcrypt -lminires -lintl -lz -lbz2
/usr/bin/libhttpd.dll
strip cygphp4.dll
apxs -i -a -n php4 cygphp4.dll

...which seems to work fine - doesn't even require a rebase.

However, if I do any "--with-foo=shared" then I get *.a in the ./modules
dir, which if copied to the extensions_dir (/usr/lib/php/20020429)
cannot be loaded if enabled in php.ini.  They are archive files, not
dlls, so naturally you get an error when you try to dlopen() them.

I've tried using a similar mkdll.sh invocation on these *.a files and it
produces *.dll, but they do not load either.  For packaging's sake it
would be really nice to get these loadable modules working, otherwise
you're stuck having to compile php with a fixed set of options.

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019