[comp.lang.perl] Memory fault on HP-UX and a patch

jand@kuling.UUCP (Jan Dj{rv) (11/14/90)

Hi all.

I get a memory fault with perl PL 40 on a HP 9000/835 when I run
Larrys (now very old version of?) metaconfig.
It's a normal substitution which causes the core dump. In the perl code it's
a call to free() which causes the fault.

I can't isolate the error on a smaller scale so I guess some memory
corruption is involved. I did compile perl with -lmalloc (which is said
to be better that the malloc in libc.a) but it didn't help.

This didn't happen in previous patchlevels of perl and it doesn't happen on
HP 9000 series 300 so perl is probably innocent.

Compiling with perls malloc solves the problem. I therefore recommend all
HP users to compile with perl:s malloc.

However, since HP 9000/800 (HP Precision Architecture) alignes (sp?) double
on a eight byte boundary, malloc.c needs a little patch:

*** malloc.c.Distr	Tue Nov 13 15:48:08 1990
--- malloc.c	Tue Nov 13 15:48:24 1990
***************
*** 56,62 ****
   */
  union	overhead {
  	union	overhead *ov_next;	/* when free */
! #if defined(mips) || defined(sparc) || defined(luna88k)
  	double  strut;			/* alignment problems */
  #endif
  	struct {
--- 56,62 ----
   */
  union	overhead {
  	union	overhead *ov_next;	/* when free */
! #if defined(mips) || defined(sparc) || defined(luna88k) || defined(hp9000s800)
  	double  strut;			/* alignment problems */
  #endif
  	struct {


	Jan D.