#21160 [Opn]: patch
| From: | tony2001 at ua dot fm | Date: | Thu, 13 Mar 2003 07:00:23 +0000 |
| Subject: | #21160 [Opn]: patch | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-14236@lists.php.net to get a copy of this message | ||
ID: 21160
User updated by: tony2001 at ua dot fm
-Summary: make fails with CVS version
Reported By: tony2001 at ua dot fm
Status: Open
Bug Type: PEAR related
Operating System: RH 7.3
-PHP Version: CVS version, ZE2
+PHP Version: 4.3.0
New Comment:
Ok, I've tried it with 4.3.0 and made some improvements.
I don't know is such patch acceptable or not, but it works ok for me.
*-----------------*
--- /root/IN/bcompiler/bcompiler/bcompiler.c Tue Feb 4 14:52:11
2003
+++ ./bcompiler.c Wed Mar 12 22:43:28 2003
@@ -311,7 +311,7 @@
*/
static void php_bcompiler_init_globals(zend_bcompiler_globals
*bcompiler_globals)
{
-
+
bcompiler_globals->buffer = (char*) emalloc(1);
bcompiler_globals->stream = NULL;
@@ -326,9 +326,8 @@
*/
PHP_MINIT_FUNCTION(bcompiler)
{
-
+
ZEND_INIT_MODULE_GLOBALS(bcompiler, php_bcompiler_init_globals,
NULL);
-
bcompiler_saved_zend_compile_file = zend_compile_file;
zend_compile_file = bcompiler_compile_file;
@@ -340,6 +339,7 @@
*/
PHP_MSHUTDOWN_FUNCTION(bcompiler)
{
+
zend_compile_file = bcompiler_saved_zend_compile_file;
return SUCCESS;
}
@@ -350,6 +350,8 @@
*/
PHP_RINIT_FUNCTION(bcompiler)
{
+
+ BCOMPILERG(buffer) = (char*) emalloc(1);
return SUCCESS;
}
/* }}} */
@@ -458,7 +460,7 @@
BCOMPILERG(buffer) = (char*) erealloc(BCOMPILERG(buffer), n +
1); \
php_stream_read((php_stream *) BCOMPILERG(stream) ,
BCOMPILERG(buffer) , n); \
memcpy((char*)bytes, BCOMPILERG(buffer), n); \
- BCOMPILER(buffer)[n] = '\0'; \
+ BCOMPILERG(buffer)[n] = '\0'; \
BCOMPILER_DEBUG(("Got: %s\n",(char*)BCOMPILERG(buffer)));
\
}
@@ -1719,7 +1721,7 @@
char *tmp;
int retval;
int len = 0;
-
+
DESERIALIZE_SCALAR(&len, int);
if (len <= 0)
{
*-----------------*
And please add to the end of bcompiler_compile.php something like
that:
...
if (isset($_SERVER['argv'][1])) {
$test = new PHP_bcompiler_compile($_SERVER['argv'][1]);
}
else {
echo "Run ".$SCRIPT_NAME." some_class.php to compile
some_class.php.phb\n";
}
...
cause, it's very annoying, when it tries to compile (and compiles!)
nonspecified file
to './.phpb' without any messages.
Previous Comments:
------------------------------------------------------------------------
[2003-03-11 01:26:34] tony2001 at ua dot fm
I've tried CVS version a few seconds ago. When I'm trying to run make I
get this (pay attention - I've updated PHP version and using ZE2 now,
but it looks like this is not a reason):
----
make
/bin/sh /root/CVS/bcompiler/libtool --mode=compile gcc -I.
-I/root/CVS/bcompiler -DPHP_ATOM_INC -I/root/CVS/bcompiler/include
-I/root/CVS/bcompiler/main -I/root/CVS/bcompiler
-I/usr/local/include/php -I/usr/local/include/php/main
-I/usr/local/include/php/Zend -I/usr/local/include/php/TSRM
-DHAVE_CONFIG_H -g -O2 -prefer-pic -c /root/CVS/bcompiler/bcompiler.c
-o bcompiler.lo
gcc -I. -I/root/CVS/bcompiler -DPHP_ATOM_INC
-I/root/CVS/bcompiler/include -I/root/CVS/bcompiler/main
-I/root/CVS/bcompiler -I/usr/local/include/php
-I/usr/local/include/php/main -I/usr/local/include/php/Zend
-I/usr/local/include/php/TSRM -DHAVE_CONFIG_H -g -O2 -c
/root/CVS/bcompiler/bcompiler.c -fPIC -DPIC -o bcompiler.lo
In file included from /root/CVS/bcompiler/bcompiler.c:32:
/root/CVS/bcompiler/php_bcompiler.h:165: parse error before `*'
/root/CVS/bcompiler/php_bcompiler.h:166: parse error before `*'
/root/CVS/bcompiler/bcompiler.c: In function `bcompiler_read':
/root/CVS/bcompiler/bcompiler.c:1248: invalid type argument of `unary
*'
/root/CVS/bcompiler/bcompiler.c:1251: invalid type argument of `unary
*'
/root/CVS/bcompiler/bcompiler.c: In function `apc_create_string':
/root/CVS/bcompiler/bcompiler.c:1667: `buffer' undeclared (first use in
this function)
/root/CVS/bcompiler/bcompiler.c:1667: (Each undeclared identifier is
reported only once
/root/CVS/bcompiler/bcompiler.c:1667: for each function it appears
in.)
/root/CVS/bcompiler/bcompiler.c:1667: subscripted value is neither
array nor pointer
/root/CVS/bcompiler/bcompiler.c: In function `apc_create_arg_types':
/root/CVS/bcompiler/bcompiler.c:1695: `buffer' undeclared (first use in
this function)
/root/CVS/bcompiler/bcompiler.c:1695: subscripted value is neither
array nor pointer
/root/CVS/bcompiler/bcompiler.c: In function `deserialize_magic':
/root/CVS/bcompiler/bcompiler.c:1735: `buffer' undeclared (first use in
this function)
/root/CVS/bcompiler/bcompiler.c:1735: subscripted value is neither
array nor pointer
/root/CVS/bcompiler/bcompiler.c: In function
`apc_deserialize_zend_llist':
/root/CVS/bcompiler/bcompiler.c:1793: `buffer' undeclared (first use in
this function)
/root/CVS/bcompiler/bcompiler.c:1793: subscripted value is neither
array nor pointer
/root/CVS/bcompiler/bcompiler.c: In function
`apc_serialize_zvalue_value':
/root/CVS/bcompiler/bcompiler.c:2012: structure has no member named
`ce'
/root/CVS/bcompiler/bcompiler.c:2013: structure has no member named
`properties'
/root/CVS/bcompiler/bcompiler.c: In function
`apc_deserialize_zvalue_value':
/root/CVS/bcompiler/bcompiler.c:2052: structure has no member named
`ce'
/root/CVS/bcompiler/bcompiler.c:2053: structure has no member named
`properties'
/root/CVS/bcompiler/bcompiler.c: In function
`apc_serialize_zend_class_entry':
/root/CVS/bcompiler/bcompiler.c:2219: subscripted value is neither
array nor pointer
/root/CVS/bcompiler/bcompiler.c:2243: structure has no member named
`handle_function_call'
/root/CVS/bcompiler/bcompiler.c:2244: structure has no member named
`handle_property_get'
/root/CVS/bcompiler/bcompiler.c:2245: structure has no member named
`handle_property_set'
/root/CVS/bcompiler/bcompiler.c: In function
`apc_deserialize_zend_class_entry':
/root/CVS/bcompiler/bcompiler.c:2283: warning: assignment makes integer
from pointer without a cast
/root/CVS/bcompiler/bcompiler.c:2284: invalid type argument of `unary
*'
/root/CVS/bcompiler/bcompiler.c:2309: structure has no member named
`handle_function_call'
/root/CVS/bcompiler/bcompiler.c:2310: structure has no member named
`handle_property_get'
/root/CVS/bcompiler/bcompiler.c:2311: structure has no member named
`handle_property_set'
/root/CVS/bcompiler/bcompiler.c: In function `apc_serialize_znode':
/root/CVS/bcompiler/bcompiler.c:2355: union has no member named
`fetch_type'
/root/CVS/bcompiler/bcompiler.c:2360: union has no member named
`fetch_type'
/root/CVS/bcompiler/bcompiler.c: In function `apc_deserialize_znode':
/root/CVS/bcompiler/bcompiler.c:2404: `buffer' undeclared (first use in
this function)
/root/CVS/bcompiler/bcompiler.c:2404: subscripted value is neither
array nor pointer
/root/CVS/bcompiler/bcompiler.c: In function
`apc_serialize_zend_op_array':
/root/CVS/bcompiler/bcompiler.c:2498: structure has no member named
`uses_globals'
/root/CVS/bcompiler/bcompiler.c:2508: structure has no member named
`uses_globals'
/root/CVS/bcompiler/bcompiler.c: In function
`apc_deserialize_zend_op_array':
/root/CVS/bcompiler/bcompiler.c:2551: `ZEND_DECLARE_FUNCTION_OR_CLASS'
undeclared (first use in this function)
/root/CVS/bcompiler/bcompiler.c:2696: structure has no member named
`uses_globals'
/root/CVS/bcompiler/bcompiler.c:2702: `buffer' undeclared (first use in
this function)
/root/CVS/bcompiler/bcompiler.c:2702: subscripted value is neither
array nor pointer
/root/CVS/bcompiler/bcompiler.c: At top level:
/root/CVS/bcompiler/bcompiler.c:2751: parse error before `*'
/root/CVS/bcompiler/bcompiler.c: In function
`apc_serialize_zend_overloaded_function':
/root/CVS/bcompiler/bcompiler.c:2753: `zof' undeclared (first use in
this function)
/root/CVS/bcompiler/bcompiler.c: At top level:
/root/CVS/bcompiler/bcompiler.c:2759: parse error before `*'
/root/CVS/bcompiler/bcompiler.c: In function
`apc_deserialize_zend_overloaded_function':
/root/CVS/bcompiler/bcompiler.c:2761: `zof' undeclared (first use in
this function)
/root/CVS/bcompiler/bcompiler.c: In function
`apc_serialize_zend_function':
/root/CVS/bcompiler/bcompiler.c:2786: union has no member named
`overloaded_function'
/root/CVS/bcompiler/bcompiler.c: In function
`apc_deserialize_zend_function':
/root/CVS/bcompiler/bcompiler.c:2810: union has no member named
`overloaded_function'
make: *** [bcompiler.lo] Error 1
I'll try to biuld it with 4.3.0 today.
------------------------------------------------------------------------
[2003-03-08 09:06:38] alan_k@php.net
can you try an updated version from CVS - there have been a few fixes
added since then.
------------------------------------------------------------------------
[2002-12-23 01:58:42] tony2001 at ua dot fm
RH7.3, Apache 1.3.27, PHP 4.3.0RC4
bcompiler compiled as dynamic module.
It seems that bcompiler_compile.php compiles class ok, but loading this
class with bcompiler_load(); initiates segfault in Apache:
----------
(gdb) file /usr/local/apache/bin/httpd
Reading symbols from /usr/local/apache/bin/httpd...done.
(gdb) run -X -f /usr/local/apache/conf/httpd.conf
Starting program: /usr/local/apache/bin/httpd -X -f
/usr/local/apache/conf/httpd.conf
Program received signal SIGSEGV, Segmentation fault.
0x4207b424 in chunk_realloc () from /lib/i686/libc.so.6
(gdb) bt
#0 0x4207b424 in chunk_realloc () from /lib/i686/libc.so.6
#1 0x4207b1f8 in realloc () from /lib/i686/libc.so.6
#2 0x401335af in _erealloc (ptr=0x8147dec, size=5, allow_failure=0) at
/root/CVS/php-4.3.0RC4/Zend/zend_alloc.c:293
#3 0x40475ccd in apc_create_string () from
/usr/local/lib/php/extensions/bcompiler.so
#4 0x40476163 in apc_deserialize_magic () from
/usr/local/lib/php/extensions/bcompiler.so
#5 0x40475180 in zif_bcompiler_load () from
/usr/local/lib/php/extensions/bcompiler.so
#6 0x401545fc in execute (op_array=0x81244ac) at
/root/CVS/php-4.3.0RC4/Zend/zend_execute.c:1596
#7 0x4014220c in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /root/CVS/php-4.3.0RC4/Zend/zend.c:864
#8 0x4011c22d in php_execute_script (primary_file=0xbffff420) at
/root/CVS/php-4.3.0RC4/main/main.c:1573
#9 0x4015bb9e in apache_php_module_main (r=0x811ea3c,
display_source_mode=0)
at /root/CVS/php-4.3.0RC4/sapi/apache/sapi_apache.c:55
#10 0x4015c696 in send_php (r=0x811ea3c, display_source_mode=0,
filename=0x0)
at /root/CVS/php-4.3.0RC4/sapi/apache/mod_php4.c:556
#11 0x4015c6ea in send_parsed_php (r=0x811ea3c) at
/root/CVS/php-4.3.0RC4/sapi/apache/mod_php4.c:571
#12 0x0806b02b in ap_invoke_handler ()
#13 0x0807ffcb in process_request_internal ()
#14 0x080803ef in ap_internal_redirect ()
#15 0x0805fe8c in handle_dir ()
#16 0x0806b02b in ap_invoke_handler ()
#17 0x0807ffcb in process_request_internal ()
#18 0x0808002c in ap_process_request ()
#19 0x08076e4d in child_main ()
#20 0x08076ff8 in make_child ()
#21 0x0807716c in startup_children ()
#22 0x080777e4 in standalone_main ()
#23 0x08078047 in main ()
#24 0x42017499 in __libc_start_main () from /lib/i686/libc.so.6
----------
Almost the same trouble happends when calling phpinfo(); if
bcompiler.so is loaded.
----------
(gdb) run -X -f /usr/local/apache/conf/httpd.conf
Starting program: /usr/local/apache/bin/httpd -X -f
/usr/local/apache/conf/httpd.conf
Program received signal SIGSEGV, Segmentation fault.
0x4207acc0 in chunk_free () from /lib/i686/libc.so.6
(gdb) bt
#0 0x4207acc0 in chunk_free () from /lib/i686/libc.so.6
#1 0x4207ac24 in free () from /lib/i686/libc.so.6
#2 0x40133875 in shutdown_memory_manager (silent=0, clean_cache=0) at
/root/CVS/php-4.3.0RC4/Zend/zend_alloc.c:462
#3 0x4011afa4 in php_request_shutdown (dummy=0x0) at
/root/CVS/php-4.3.0RC4/main/main.c:949
#4 0x4015bbf8 in apache_php_module_main (r=0x811e0fc,
display_source_mode=0)
at /root/CVS/php-4.3.0RC4/sapi/apache/sapi_apache.c:61
#5 0x4015c696 in send_php (r=0x811e0fc, display_source_mode=0,
filename=0x0)
at /root/CVS/php-4.3.0RC4/sapi/apache/mod_php4.c:556
#6 0x4015c6ea in send_parsed_php (r=0x811e0fc) at
/root/CVS/php-4.3.0RC4/sapi/apache/mod_php4.c:571
#7 0x0806b02b in ap_invoke_handler ()
#8 0x0807ffcb in process_request_internal ()
#9 0x0808002c in ap_process_request ()
#10 0x08076e4d in child_main ()
#11 0x08076ff8 in make_child ()
#12 0x0807716c in startup_children ()
#13 0x080777e4 in standalone_main ()
#14 0x08078047 in main ()
#15 0x42017499 in __libc_start_main () from /lib/i686/libc.so.6
----------
The same trouble happends with Apache 1.3.26, PHP 4.3.0-dev (rather
old, July CVS-version).
Extension compiles without any warnings or errors.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=21160&edit=1