On Mon, 18 Oct 2010, Steve Hay wrote:
>
> Automated smoke report for 5.13.5 patch
> 2419ffa9696600b121e9973fbb0846bda5fc5833 v5.13.5-512-g2419ffa
> maldoror.bath.planit.group: Intel(R) Core(TM)2 CPU 6700 @ 2.66GHz(~2660 MHz)
> (x86/2 cpu)
> on MSWin32 - WinXP/.Net SP3
> using cl version 12.00.8804
> smoketime 4 hours 37 minutes (average 27 minutes 43 seconds)
[...]
> M M -Duselargefiles -Dusemymalloc
I don't understand this configuration. At least the win32/Makefile
does not allow you to define PERL_MALLOC unless you disable USE_IMP_SYS.
So how is this configuration different from the one below:
> M M -Duselargefiles -Duseithreads -Uuseimpsys -Dusemymalloc
I have a patch for this one, but it requires moving around the location
when malloc_tl.h is included into perl.h, so I won't commit it until
5.13.6 has been released.
Cheers,
-Jan
PS: The problem is that malloc_ctl.h doesn't use PERL_CALLCONV to
declare Perl_malloc() etc. and therefore conflicts with proto.h.
The patch I want to apply is this:
diff --git a/malloc_ctl.h b/malloc_ctl.h
index 7a6aed0..d746372 100644
--- a/malloc_ctl.h
+++ b/malloc_ctl.h
@@ -14,14 +14,12 @@ struct perl_mstats {
};
typedef struct perl_mstats perl_mstats_t;
-START_EXTERN_C
-Malloc_t Perl_malloc (MEM_SIZE nbytes);
-Malloc_t Perl_calloc (MEM_SIZE elements, MEM_SIZE size);
-Malloc_t Perl_realloc (Malloc_t where, MEM_SIZE nbytes);
+PERL_CALLCONV Malloc_t Perl_malloc (MEM_SIZE nbytes);
+PERL_CALLCONV Malloc_t Perl_calloc (MEM_SIZE elements, MEM_SIZE size);
+PERL_CALLCONV Malloc_t Perl_realloc (Malloc_t where, MEM_SIZE nbytes);
/* 'mfree' rather than 'free', since there is already a 'perl_free'
* that causes clashes with case-insensitive linkers */
-Free_t Perl_mfree (Malloc_t where);
-END_EXTERN_C
+PERL_CALLCONV Free_t Perl_mfree (Malloc_t where);
#ifndef NO_MALLOC_DYNAMIC_CFG
diff --git a/perl.h b/perl.h
index a680e76..704cf3a 100644
--- a/perl.h
+++ b/perl.h
@@ -2387,10 +2387,6 @@ int isnan(double d);
#endif
-#ifdef MYMALLOC
-# include "malloc_ctl.h"
-#endif
-
struct RExC_state_t;
struct _reg_trie_data;
@@ -4977,6 +4973,10 @@ struct tempsym; /* defined in pp_pack.c */
#define PERL_CKDEF(s) PERL_CALLCONV OP *s (pTHX_ OP *o);
#define PERL_PPDEF(s) PERL_CALLCONV OP *s (pTHX);
+#ifdef MYMALLOC
+# include "malloc_ctl.h"
+#endif
+
#include "proto.h"
/* this has structure inits, so it cannot be included before here */