I cannot seem to convince the "hello world" extension I am writing to
use the same PHP API version, debug, and ZTS mode as my PHP CLI.

../../sapi/cli/php -d extension_dir="." -r "dl('modules/perror.so');
echo hello_world();"

Warning: dl(): *8i(T7i(: Unable to initialize module
Module compiled with module API=20041030, debug=0, thread-safety=0
PHP    compiled with module API=20050922, debug=1, thread-safety=1
These options need to match
 in Command line code on line 1

API=20050922, debug=1, thread-safety=1 is what I would expect to see
for both, as the source tree I am using is from CVS -r PHP_5_1

I saw one post that 'dl' was deprecated and to just use extension= in
php.ini, so I've done it with -d extension=modules/perror.so and no
'dl and it's the same output.

I've been dinking with this for a couple hours, and the Google answers
are always "Use the same settings for ./configure for all
compilations"

Problem is, the configure lines I am using are the same, and I'm even
TELLING it to use the includedir/libdir I want.

>From my extension directory:

-bash-2.05b$ cat ~/cvs/php-src/config.safe
#! /bin/sh
./configure --enable-debug --enable-maintainer-zts
--prefix=/www/acousticdemo.com/cvs/usr/local $@

[I set up a shell script so I wouldn't have to re-type it each time.]

-bash-2.05b$ cat config.nice
#! /bin/sh
#
# Created by configure

'./configure' \
'--enable-debug' \
'--enable-maintainer-zts' \
'--enable-perror' \
'--prefix=/www/acousticdemo.com/cvs/usr/local/' \
'--includedir=/www/acousticdemo.com/cvs/usr/local/' \
'--libdir=/www/acousticdemo.com/cvs/usr/local/' \
"$@"
-bash-2.05b$

So that's what I ASKED the extension to compile as...


Okay, so I added --includedir and --libdir in an attempt for FORCE the
Module to look where I want it to.  But it failed the same way without
them.

Yet, it persists in using what I believe are the headers from my
webhost installation in /usr/local/bin, which would be PHP 5.0.4

Is there any other magic incantation I can use to FORCE the extension
configure script to ignore /usr/local and use MY ~/cvs/usr/local

I feel like I've done everything "right" and yet it ignores what I ask
it to do in favor of /usr/local, which is what I expressly do not
want.

I have had to comment out a couple "exit" lines in
../../usr/local/bin/phpize in the autoconf stuff, because I set
$PHP_AUTOCONF and $PHP_AUTOHEADER for /usr/local/bin/autoconf213
FreeBSD style, and those tests seem bogus, but I really doubt that is
the cause of this particular problem... Is it?

How do you guys handle having multiple installs/versions.

Surely you guys don't wipe out your base /usr/local every time... Do you?

Maybe this matters?

FreeBSD o11.hostbaby.com 5.3-RELEASE FreeBSD 5.3-RELEASE #0: Sat Jan
15 06:47:43 PST 2005

God I hope I'm not doing something colossally stupid.  Again.

-- 
Like Music?
http://l-i-e.com/artists.htm

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to