Hi Sam,
Yes the current CVS is working fine.
It is really alignment issue however I have not traced it down to in lispbibl.h.
BR
Vladimir
On Thu, Jul 17, 2008 at 6:23 PM, Sam Steingold <sds@...> wrote:
> Hi Vladimir,
>
> Vladimir Tzankov wrote:
>>
>> If instead of trying to print the subr name we just skip it (not push
>> it on stack and removing one ~S from the format string) all tests pass
>> with no segfault.
>
> fascinating.
> yes, you nailed the problem, thank you very much!
> the fix is in the CVS, please try it.
>
> incidentally, the reason it worked for me but not for you is that
> fsubr and subr structs start the same:
>
> typedef struct {
> XRECORD_HEADER
> gcv_object_t name _attribute_aligned_object_; /* name */
>
> the the only difference is that subr ends with
>
> #if defined(HEAPCODES) && (alignment_long < 4) && defined(GNU)
> /* Force all Subrs to be allocated with a 4-byte alignment. GC needs this.
> */
> __attribute__ ((aligned (4)))
> #endif
>
> you can do "make lispbibl.h" (if you are using gcc) and see the values of
> HEAPCODES, alignment_long, and the actual definition of subr_t and fsubr_t.
> I bet you have the __attribute__ ((aligned (4))).
>
> Thanks again for debugging this!
>
> Sam.
>
>