Re: Gentoo ebuilds

Mike Bedwell <[email protected]>
Newsgroups gmane.comp.web.midgard.user
Message-ID <[email protected]>
On Wed, 2005-05-25 at 15:32 +0200, Piotras wrote:
> Mike Bedwell <[email protected]> wrote:
> 
> > > Sorry, I do not understand. How you do "set" ZTS?  What do You mean?
> > > It should be defined in php header files.
> > 
> > Since my mod_php install was installed with ZTS enabled, and since
> > midgard-php4 didn't seem to be setting ZTS to defined, i used
> > preprocessor commands  in the header files to #define ZTS
> 
> 1.6.3 was released to use ZTS.
> However it affected only debian at that time, and debian packages were compiled 
> with ZTS without any problem.

Everything compiles successfully on Gentoo as well.  However, when I
restart apache, it fails to load the php module midgard.so
Here is the error log from error.log.  As you can see, the apache module
loads but not the php module.

[Tue May 24 21:58:29 2005] [notice] caught SIGTERM, shutting down
[Tue May 24 21:58:33 2005] [notice] Digest: generating secret for digest
authent
ication ...
[Tue May 24 21:58:33 2005] [notice] Digest: done
PHP Warning:  Unknown(): Unable to load dynamic library
'/usr/lib/php/extensions
/no-debug-zts-20020429/midgard.so'
- /usr/lib/php/extensions/no-debug-zts-200204
29/midgard.so: undefined symbol: compiler_globals in Unknown on line 0
[Tue May 24 21:58:34 2005] [notice] Apache/2.0.54 (Gentoo/Linux)
PHP/4.3.11 Midg
ard/1.6.3/Repository/MultiLang configured -- resuming normal operations

 
> 
> > Yes I am.  I uninstalled all of my php, then re-installed just to cover
> > that base.  The only thing I can think of that might be an issue here,
> > is that gentoo installs php (cli) without zts enabled, and installed
> > mod_php with zts enabled (via --enable-experimental-zts)
> 
> Both packages should have own ini files and different extensions dirs.
> Can you send me make errors? All of them.
> 
> Piotras

Both packages do have their own ini files and extension dirs.  Or, at
least they did.  I'd like to send you make errors, but, as I mentioned
above, the package compiles fine, it just doesn't seem to have ZTS
defined.  Per php_midgard.h if ZTS is defined, it should #include
"TSRM.h".  This wasn't happening.  If I manually #defined it by editing
headers, then make would fail with the following output:

 gcc -I. -I/root/Midgard_AllinOne/midgard-php4-1.6.3 -DPHP_ATOM_INC
-I/root/Midgard_AllinOne/midgard-php4-1.6.3/include
-I/root/Midgard_AllinOne/midgard-php4-1.6.3/main
-I/root/Midgard_AllinOne/midgard-php4-1.6.3 -I/usr/include/php
-I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend
-I/apache2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include
-I/usr/include/mysql -I/usr/include/apache2 -DHAVE_CONFIG_H -g -O2
-c /root/Midgard_AllinOne/midgard-php4-1.6.3/midgard.c  -fPIC -DPIC
-o .libs/midgard.o
In file included from /usr/include/php/Zend/zend_alloc.h:26,
                 from /usr/include/php/Zend/zend.h:210,
                 from /usr/include/php/main/php.h:34,

from /root/Midgard_AllinOne/midgard-php4-1.6.3/php_midgard.h:54,

from /root/Midgard_AllinOne/midgard-php4-1.6.3/midgard.c:24:
/usr/include/php/TSRM/TSRM.h:105: error: syntax error before "THREAD_T"
/usr/include/php/TSRM/TSRM.h:120: error: syntax error before "thread_id"
/usr/include/php/TSRM/TSRM.h:121: error: syntax error before "thread_id"
/usr/include/php/TSRM/TSRM.h:128: error: syntax error before
"tsrm_thread_id"
/usr/include/php/TSRM/TSRM.h:128: warning: data definition has no type
or storage class
/usr/include/php/TSRM/TSRM.h:129: error: syntax error before
"tsrm_mutex_alloc"
/usr/include/php/TSRM/TSRM.h:129: warning: data definition has no type
or storage class
/usr/include/php/TSRM/TSRM.h:130: error: syntax error before "mutexp"
/usr/include/php/TSRM/TSRM.h:131: error: syntax error before "mutexp"
/usr/include/php/TSRM/TSRM.h:132: error: syntax error before "mutexp"
make: *** [midgard.lo] Error 1

I modified Gentoo's ebuild file for php to include
--enable-experimental-zts and then recompiled midgard-php and all seems
to be fine now, modules load and everything.  i don't know if that means
there is a bug in Gentoo's method of installing php (doesn't enable zts)
and mod_php (does enable zts), or if there is a bug in
midgard-php(doesn't detect that it should enable zts).  But, it does
correct the problem to make sure that both mod_php and cli php are
compiled with zts.	

-- 
Mike
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQBClErEE8/6810jZicRAvfMAJ9eocphXdM5/nYIOOYX56GXHGSeLACfZWeQ
+h8SQ+cdZn4UOWNWMguLGGk=
=XrnH
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.