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 */

Reply via email to