On Sunday 02 September 2007 10:37:13 Jeff Horwitz wrote:

> not surprisingly, it looks like some symbols in libparrot conflict with
> exported symbols from other libraries.  i ran into this when testing
> mod_parrot on an apache server with PHP 5 configured:
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1077226080 (LWP 9187)]
> 0x4065c4a4 in list_length () from /usr/local/apache2/modules/libphp5.so
> (gdb) bt
> #0  0x4065c4a4 in list_length () from
> /usr/local/apache2/modules/libphp5.so
> #1  0x40b7f47a in visit_loop_todo_list (interp=0x825c488, current=0x0,
>      info=0xbffff4e0) at src/pmc_freeze.c:1426
> #2  0x40b7f781 in run_thaw (interp=0x825c488, image=0x840978c,
>      what=VISIT_THAW_NORMAL) at src/pmc_freeze.c:1554
> #3  0x40b7f9c6 in Parrot_thaw (interp=0x825c488, image=0x840978c)
>      at src/pmc_freeze.c:1663
>
> [snip]
>
> obviously parrot is looking for src/list.c:list_length, but instead gets
> PHP5's list_length, which is already loaded into apache.  i'm sure this
> problem exists for other functions -- any ideas for how to address this?
> we could prepend a Parrot_ prefix for the PARROT_API functions (which
> list_length is), but that may not be appropriate for all situations.

I see no reason anything in src/list.c needs PARROT_API.  Any objections?

-- c

Reply via email to