more complete pseudo-fork() support for Windows
[p5sagit/p5-mst-13.2.git] / embed.h
diff --git a/embed.h b/embed.h
index 1d33518..758a0c2 100644 (file)
--- a/embed.h
+++ b/embed.h
 #  define  Perl_safesysrealloc         Perl_saferealloc
 #  define  Perl_set_numeric_local      perl_set_numeric_local
 #  define  Perl_set_numeric_standard   perl_set_numeric_standard
-#  define  PERL_POLLUTE
-#  ifndef EMBEDMYMALLOC
-#    define  PERL_POLLUTE_MALLOC
+/* malloc() pollution was the default in earlier versions, so enable
+ * it for bincompat; but not for systems that used to do prevent that,
+ * or when they ask for {HIDE,EMBED}MYMALLOC */
+#  if !defined(EMBEDMYMALLOC) && !defined(HIDEMYMALLOC)
+#    if !defined(NeXT) && !defined(__NeXT) && !defined(__MACHTEN__) && \
+        !defined(__QNX__)
+#      define  PERL_POLLUTE_MALLOC
+#    endif
 #  endif
 #endif
 
 #if !defined(PERL_OBJECT)
 #if !defined(PERL_IMPLICIT_CONTEXT)
 
+#if defined(PERL_IMPLICIT_SYS)
+#else
+#endif
+#if defined(USE_ITHREADS)
+#endif
+#if defined(MYMALLOC)
+#define malloced_size          Perl_malloced_size
+#endif
+#if defined(PERL_OBJECT)
+#endif
 #if defined(PERL_OBJECT)
+#else
 #endif
 #define amagic_call            Perl_amagic_call
 #define Gv_AMupdate            Perl_Gv_AMupdate
 #define die_nocontext          Perl_die_nocontext
 #define deb_nocontext          Perl_deb_nocontext
 #define form_nocontext         Perl_form_nocontext
+#define mess_nocontext         Perl_mess_nocontext
 #define warn_nocontext         Perl_warn_nocontext
 #define warner_nocontext       Perl_warner_nocontext
 #define newSVpvf_nocontext     Perl_newSVpvf_nocontext
 #define cxinc                  Perl_cxinc
 #define deb                    Perl_deb
 #define vdeb                   Perl_vdeb
-#define deb_growlevel          Perl_deb_growlevel
 #define debprofdump            Perl_debprofdump
 #define debop                  Perl_debop
 #define debstack               Perl_debstack
 #define magic_sizepack         Perl_magic_sizepack
 #define magic_wipepack         Perl_magic_wipepack
 #define magicname              Perl_magicname
-#if defined(MYMALLOC)
-#define malloced_size          Perl_malloced_size
-#endif
 #define markstack_grow         Perl_markstack_grow
 #if defined(USE_LOCALE_COLLATE)
 #define mem_collxfrm           Perl_mem_collxfrm
 #endif
 #define mess                   Perl_mess
+#define vmess                  Perl_vmess
+#define qerror                 Perl_qerror
 #define mg_clear               Perl_mg_clear
 #define mg_copy                        Perl_mg_copy
 #define mg_find                        Perl_mg_find
 #define newHVhv                        Perl_newHVhv
 #define newIO                  Perl_newIO
 #define newLISTOP              Perl_newLISTOP
+#define newPADOP               Perl_newPADOP
 #define newPMOP                        Perl_newPMOP
 #define newPVOP                        Perl_newPVOP
 #define newRV                  Perl_newRV
 #define pad_swipe              Perl_pad_swipe
 #define peep                   Perl_peep
 #if defined(PERL_OBJECT)
-#else
+#endif
 #if defined(USE_THREADS)
 #define new_struct_thread      Perl_new_struct_thread
 #endif
-#endif
 #define call_atexit            Perl_call_atexit
 #define call_argv              Perl_call_argv
 #define call_method            Perl_call_method
 #define save_clearsv           Perl_save_clearsv
 #define save_delete            Perl_save_delete
 #define save_destructor                Perl_save_destructor
+#define save_destructor_x      Perl_save_destructor_x
 #define save_freesv            Perl_save_freesv
 #define save_freeop            Perl_save_freeop
 #define save_freepv            Perl_save_freepv
 #define save_op                        Perl_save_op
 #define save_scalar            Perl_save_scalar
 #define save_pptr              Perl_save_pptr
+#define save_vptr              Perl_save_vptr
 #define save_re_context                Perl_save_re_context
 #define save_sptr              Perl_save_sptr
 #define save_svref             Perl_save_svref
 #define newMYSUB               Perl_newMYSUB
 #define my_attrs               Perl_my_attrs
 #define boot_core_xsutils      Perl_boot_core_xsutils
+#if defined(USE_ITHREADS)
+#define cx_dup                 Perl_cx_dup
+#define si_dup                 Perl_si_dup
+#define ss_dup                 Perl_ss_dup
+#define any_dup                        Perl_any_dup
+#define he_dup                 Perl_he_dup
+#define re_dup                 Perl_re_dup
+#define fp_dup                 Perl_fp_dup
+#define dirp_dup               Perl_dirp_dup
+#define gp_dup                 Perl_gp_dup
+#define mg_dup                 Perl_mg_dup
+#define sv_dup                 Perl_sv_dup
+#if defined(HAVE_INTERP_INTERN)
+#define sys_intern_dup         Perl_sys_intern_dup
+#endif
+#define ptr_table_new          Perl_ptr_table_new
+#define ptr_table_fetch                Perl_ptr_table_fetch
+#define ptr_table_store                Perl_ptr_table_store
+#define ptr_table_split                Perl_ptr_table_split
+#endif
 #if defined(PERL_OBJECT)
+#else
 #endif
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 #define avhv_index_sv          S_avhv_index_sv
 #define simplify_sort          S_simplify_sort
 #define is_handle_constructor  S_is_handle_constructor
 #define gv_ename               S_gv_ename
+#define cv_dump                        S_cv_dump
 #define cv_clone2              S_cv_clone2
 #define scalar_mod_type                S_scalar_mod_type
 #define my_kid                 S_my_kid
 #define more_xiv               S_more_xiv
 #define more_xnv               S_more_xnv
 #define more_xpv               S_more_xpv
+#define more_xpviv             S_more_xpviv
+#define more_xpvnv             S_more_xpvnv
+#define more_xpvcv             S_more_xpvcv
+#define more_xpvav             S_more_xpvav
+#define more_xpvhv             S_more_xpvhv
+#define more_xpvmg             S_more_xpvmg
+#define more_xpvlv             S_more_xpvlv
+#define more_xpvbm             S_more_xpvbm
 #define more_xrv               S_more_xrv
 #define new_xiv                        S_new_xiv
 #define new_xnv                        S_new_xnv
 #define new_xpv                        S_new_xpv
+#define new_xpviv              S_new_xpviv
+#define new_xpvnv              S_new_xpvnv
+#define new_xpvcv              S_new_xpvcv
+#define new_xpvav              S_new_xpvav
+#define new_xpvhv              S_new_xpvhv
+#define new_xpvmg              S_new_xpvmg
+#define new_xpvlv              S_new_xpvlv
+#define new_xpvbm              S_new_xpvbm
 #define new_xrv                        S_new_xrv
 #define del_xiv                        S_del_xiv
 #define del_xnv                        S_del_xnv
 #define del_xpv                        S_del_xpv
+#define del_xpviv              S_del_xpviv
+#define del_xpvnv              S_del_xpvnv
+#define del_xpvcv              S_del_xpvcv
+#define del_xpvav              S_del_xpvav
+#define del_xpvhv              S_del_xpvhv
+#define del_xpvmg              S_del_xpvmg
+#define del_xpvlv              S_del_xpvlv
+#define del_xpvbm              S_del_xpvbm
 #define del_xrv                        S_del_xrv
 #define sv_unglob              S_sv_unglob
 #define not_a_number           S_not_a_number
 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
 #define isa_lookup             S_isa_lookup
 #endif
-#if defined(PERL_IN_XSUTILS_C) || defined(PERL_DECL_PROT)
-#define modify_SV_attributes   S_modify_SV_attributes
-#endif
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 #define mess_alloc             S_mess_alloc
 #  if defined(LEAKTEST)
 #define xstat                  S_xstat
 #  endif
 #endif
+#if defined(PERL_OBJECT)
+#endif
 #define ck_anoncode            Perl_ck_anoncode
 #define ck_bitop               Perl_ck_bitop
 #define ck_concat              Perl_ck_concat
 #define ck_glob                        Perl_ck_glob
 #define ck_grep                        Perl_ck_grep
 #define ck_index               Perl_ck_index
+#define ck_join                        Perl_ck_join
 #define ck_lengthconst         Perl_ck_lengthconst
 #define ck_lfun                        Perl_ck_lfun
 #define ck_listiob             Perl_ck_listiob
 #define pp_leaveeval           Perl_pp_leaveeval
 #define pp_leaveloop           Perl_pp_leaveloop
 #define pp_leavesub            Perl_pp_leavesub
+#define pp_leavesublv          Perl_pp_leavesublv
 #define pp_leavetry            Perl_pp_leavetry
 #define pp_leavewrite          Perl_pp_leavewrite
 #define pp_left_shift          Perl_pp_left_shift
 
 #else  /* PERL_IMPLICIT_CONTEXT */
 
+#if defined(PERL_IMPLICIT_SYS)
+#else
+#endif
+#if defined(USE_ITHREADS)
+#endif
+#if defined(MYMALLOC)
+#define malloced_size          Perl_malloced_size
+#endif
 #if defined(PERL_OBJECT)
 #endif
+#if defined(PERL_OBJECT)
+#else
+#endif
 #define amagic_call(a,b,c,d)   Perl_amagic_call(aTHX_ a,b,c,d)
 #define Gv_AMupdate(a)         Perl_Gv_AMupdate(aTHX_ a)
 #define append_elem(a,b,c)     Perl_append_elem(aTHX_ a,b,c)
 #define get_ppaddr()           Perl_get_ppaddr(aTHX)
 #define cxinc()                        Perl_cxinc(aTHX)
 #define vdeb(a,b)              Perl_vdeb(aTHX_ a,b)
-#define deb_growlevel()                Perl_deb_growlevel(aTHX)
 #define debprofdump()          Perl_debprofdump(aTHX)
 #define debop(a)               Perl_debop(aTHX_ a)
 #define debstack()             Perl_debstack(aTHX)
 #define magic_sizepack(a,b)    Perl_magic_sizepack(aTHX_ a,b)
 #define magic_wipepack(a,b)    Perl_magic_wipepack(aTHX_ a,b)
 #define magicname(a,b,c)       Perl_magicname(aTHX_ a,b,c)
-#if defined(MYMALLOC)
-#define malloced_size          Perl_malloced_size
-#endif
 #define markstack_grow()       Perl_markstack_grow(aTHX)
 #if defined(USE_LOCALE_COLLATE)
 #define mem_collxfrm(a,b,c)    Perl_mem_collxfrm(aTHX_ a,b,c)
 #endif
-#define mess(a,b)              Perl_mess(aTHX_ a,b)
+#define vmess(a,b)             Perl_vmess(aTHX_ a,b)
+#define qerror(a)              Perl_qerror(aTHX_ a)
 #define mg_clear(a)            Perl_mg_clear(aTHX_ a)
 #define mg_copy(a,b,c,d)       Perl_mg_copy(aTHX_ a,b,c,d)
 #define mg_find(a,b)           Perl_mg_find(aTHX_ a,b)
 #define newHVhv(a)             Perl_newHVhv(aTHX_ a)
 #define newIO()                        Perl_newIO(aTHX)
 #define newLISTOP(a,b,c,d)     Perl_newLISTOP(aTHX_ a,b,c,d)
+#define newPADOP(a,b,c)                Perl_newPADOP(aTHX_ a,b,c)
 #define newPMOP(a,b)           Perl_newPMOP(aTHX_ a,b)
 #define newPVOP(a,b,c)         Perl_newPVOP(aTHX_ a,b,c)
 #define newRV(a)               Perl_newRV(aTHX_ a)
 #define pad_swipe(a)           Perl_pad_swipe(aTHX_ a)
 #define peep(a)                        Perl_peep(aTHX_ a)
 #if defined(PERL_OBJECT)
-#else
+#endif
 #if defined(USE_THREADS)
 #define new_struct_thread(a)   Perl_new_struct_thread(aTHX_ a)
 #endif
-#endif
 #define call_atexit(a,b)       Perl_call_atexit(aTHX_ a,b)
 #define call_argv(a,b,c)       Perl_call_argv(aTHX_ a,b,c)
 #define call_method(a,b)       Perl_call_method(aTHX_ a,b)
 #define save_clearsv(a)                Perl_save_clearsv(aTHX_ a)
 #define save_delete(a,b,c)     Perl_save_delete(aTHX_ a,b,c)
 #define save_destructor(a,b)   Perl_save_destructor(aTHX_ a,b)
+#define save_destructor_x(a,b) Perl_save_destructor_x(aTHX_ a,b)
 #define save_freesv(a)         Perl_save_freesv(aTHX_ a)
 #define save_freeop(a)         Perl_save_freeop(aTHX_ a)
 #define save_freepv(a)         Perl_save_freepv(aTHX_ a)
 #define save_op()              Perl_save_op(aTHX)
 #define save_scalar(a)         Perl_save_scalar(aTHX_ a)
 #define save_pptr(a)           Perl_save_pptr(aTHX_ a)
+#define save_vptr(a)           Perl_save_vptr(aTHX_ a)
 #define save_re_context()      Perl_save_re_context(aTHX)
 #define save_sptr(a)           Perl_save_sptr(aTHX_ a)
 #define save_svref(a)          Perl_save_svref(aTHX_ a)
 #define do_pmop_dump(a,b,c)    Perl_do_pmop_dump(aTHX_ a,b,c)
 #define do_sv_dump(a,b,c,d,e,f,g)      Perl_do_sv_dump(aTHX_ a,b,c,d,e,f,g)
 #define magic_dump(a)          Perl_magic_dump(aTHX_ a)
-#define vdefault_protect(a,b,c)        Perl_vdefault_protect(aTHX_ a,b,c)
+#define vdefault_protect(a,b,c,d)      Perl_vdefault_protect(aTHX_ a,b,c,d)
 #define reginitcolors()                Perl_reginitcolors(aTHX)
 #define sv_2pv_nolen(a)                Perl_sv_2pv_nolen(aTHX_ a)
 #define sv_pv(a)               Perl_sv_pv(aTHX_ a)
 #define newMYSUB(a,b,c,d,e)    Perl_newMYSUB(aTHX_ a,b,c,d,e)
 #define my_attrs(a,b)          Perl_my_attrs(aTHX_ a,b)
 #define boot_core_xsutils()    Perl_boot_core_xsutils(aTHX)
+#if defined(USE_ITHREADS)
+#define cx_dup(a,b,c)          Perl_cx_dup(aTHX_ a,b,c)
+#define si_dup(a)              Perl_si_dup(aTHX_ a)
+#define ss_dup(a)              Perl_ss_dup(aTHX_ a)
+#define any_dup(a,b)           Perl_any_dup(aTHX_ a,b)
+#define he_dup(a,b)            Perl_he_dup(aTHX_ a,b)
+#define re_dup(a)              Perl_re_dup(aTHX_ a)
+#define fp_dup(a,b)            Perl_fp_dup(aTHX_ a,b)
+#define dirp_dup(a)            Perl_dirp_dup(aTHX_ a)
+#define gp_dup(a)              Perl_gp_dup(aTHX_ a)
+#define mg_dup(a)              Perl_mg_dup(aTHX_ a)
+#define sv_dup(a)              Perl_sv_dup(aTHX_ a)
+#if defined(HAVE_INTERP_INTERN)
+#define sys_intern_dup(a,b)    Perl_sys_intern_dup(aTHX_ a,b)
+#endif
+#define ptr_table_new()                Perl_ptr_table_new(aTHX)
+#define ptr_table_fetch(a,b)   Perl_ptr_table_fetch(aTHX_ a,b)
+#define ptr_table_store(a,b,c) Perl_ptr_table_store(aTHX_ a,b,c)
+#define ptr_table_split(a)     Perl_ptr_table_split(aTHX_ a)
+#endif
 #if defined(PERL_OBJECT)
+#else
 #endif
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 #define avhv_index_sv(a)       S_avhv_index_sv(aTHX_ a)
 #define simplify_sort(a)       S_simplify_sort(aTHX_ a)
 #define is_handle_constructor(a,b)     S_is_handle_constructor(aTHX_ a,b)
 #define gv_ename(a)            S_gv_ename(aTHX_ a)
+#define cv_dump(a)             S_cv_dump(aTHX_ a)
 #define cv_clone2(a,b)         S_cv_clone2(aTHX_ a,b)
 #define scalar_mod_type(a,b)   S_scalar_mod_type(aTHX_ a,b)
 #define my_kid(a,b)            S_my_kid(aTHX_ a,b)
 #define more_xiv()             S_more_xiv(aTHX)
 #define more_xnv()             S_more_xnv(aTHX)
 #define more_xpv()             S_more_xpv(aTHX)
+#define more_xpviv()           S_more_xpviv(aTHX)
+#define more_xpvnv()           S_more_xpvnv(aTHX)
+#define more_xpvcv()           S_more_xpvcv(aTHX)
+#define more_xpvav()           S_more_xpvav(aTHX)
+#define more_xpvhv()           S_more_xpvhv(aTHX)
+#define more_xpvmg()           S_more_xpvmg(aTHX)
+#define more_xpvlv()           S_more_xpvlv(aTHX)
+#define more_xpvbm()           S_more_xpvbm(aTHX)
 #define more_xrv()             S_more_xrv(aTHX)
 #define new_xiv()              S_new_xiv(aTHX)
 #define new_xnv()              S_new_xnv(aTHX)
 #define new_xpv()              S_new_xpv(aTHX)
+#define new_xpviv()            S_new_xpviv(aTHX)
+#define new_xpvnv()            S_new_xpvnv(aTHX)
+#define new_xpvcv()            S_new_xpvcv(aTHX)
+#define new_xpvav()            S_new_xpvav(aTHX)
+#define new_xpvhv()            S_new_xpvhv(aTHX)
+#define new_xpvmg()            S_new_xpvmg(aTHX)
+#define new_xpvlv()            S_new_xpvlv(aTHX)
+#define new_xpvbm()            S_new_xpvbm(aTHX)
 #define new_xrv()              S_new_xrv(aTHX)
 #define del_xiv(a)             S_del_xiv(aTHX_ a)
 #define del_xnv(a)             S_del_xnv(aTHX_ a)
 #define del_xpv(a)             S_del_xpv(aTHX_ a)
+#define del_xpviv(a)           S_del_xpviv(aTHX_ a)
+#define del_xpvnv(a)           S_del_xpvnv(aTHX_ a)
+#define del_xpvcv(a)           S_del_xpvcv(aTHX_ a)
+#define del_xpvav(a)           S_del_xpvav(aTHX_ a)
+#define del_xpvhv(a)           S_del_xpvhv(aTHX_ a)
+#define del_xpvmg(a)           S_del_xpvmg(aTHX_ a)
+#define del_xpvlv(a)           S_del_xpvlv(aTHX_ a)
+#define del_xpvbm(a)           S_del_xpvbm(aTHX_ a)
 #define del_xrv(a)             S_del_xrv(aTHX_ a)
 #define sv_unglob(a)           S_sv_unglob(aTHX_ a)
 #define not_a_number(a)                S_not_a_number(aTHX_ a)
 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
 #define isa_lookup(a,b,c,d)    S_isa_lookup(aTHX_ a,b,c,d)
 #endif
-#if defined(PERL_IN_XSUTILS_C) || defined(PERL_DECL_PROT)
-#define modify_SV_attributes(a,b,c,d)  S_modify_SV_attributes(aTHX_ a,b,c,d)
-#endif
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 #define mess_alloc()           S_mess_alloc(aTHX)
 #  if defined(LEAKTEST)
 #define xstat(a)               S_xstat(aTHX_ a)
 #  endif
 #endif
+#if defined(PERL_OBJECT)
+#endif
 #define ck_anoncode(a)         Perl_ck_anoncode(aTHX_ a)
 #define ck_bitop(a)            Perl_ck_bitop(aTHX_ a)
 #define ck_concat(a)           Perl_ck_concat(aTHX_ a)
 #define ck_glob(a)             Perl_ck_glob(aTHX_ a)
 #define ck_grep(a)             Perl_ck_grep(aTHX_ a)
 #define ck_index(a)            Perl_ck_index(aTHX_ a)
+#define ck_join(a)             Perl_ck_join(aTHX_ a)
 #define ck_lengthconst(a)      Perl_ck_lengthconst(aTHX_ a)
 #define ck_lfun(a)             Perl_ck_lfun(aTHX_ a)
 #define ck_listiob(a)          Perl_ck_listiob(aTHX_ a)
 #define pp_leaveeval()         Perl_pp_leaveeval(aTHX)
 #define pp_leaveloop()         Perl_pp_leaveloop(aTHX)
 #define pp_leavesub()          Perl_pp_leavesub(aTHX)
+#define pp_leavesublv()                Perl_pp_leavesublv(aTHX)
 #define pp_leavetry()          Perl_pp_leavetry(aTHX)
 #define pp_leavewrite()                Perl_pp_leavewrite(aTHX)
 #define pp_left_shift()                Perl_pp_left_shift(aTHX)
 #endif /* PERL_IMPLICIT_CONTEXT */
 #else  /* PERL_OBJECT */
 
+#if defined(PERL_IMPLICIT_SYS)
+#else
+#endif
+#if defined(USE_ITHREADS)
+#endif
+#if defined(MYMALLOC)
+#define malloc                 Perl_malloc
+#define calloc                 Perl_calloc
+#define realloc                        Perl_realloc
+#define mfree                  Perl_mfree
+#define malloced_size          Perl_malloced_size
+#endif
+#if defined(PERL_OBJECT)
+#endif
 #if defined(PERL_OBJECT)
+#else
 #endif
 #define Perl_amagic_call       CPerlObj::Perl_amagic_call
 #define amagic_call            Perl_amagic_call
 #define deb_nocontext          Perl_deb_nocontext
 #define Perl_form_nocontext    CPerlObj::Perl_form_nocontext
 #define form_nocontext         Perl_form_nocontext
+#define Perl_mess_nocontext    CPerlObj::Perl_mess_nocontext
+#define mess_nocontext         Perl_mess_nocontext
 #define Perl_warn_nocontext    CPerlObj::Perl_warn_nocontext
 #define warn_nocontext         Perl_warn_nocontext
 #define Perl_warner_nocontext  CPerlObj::Perl_warner_nocontext
 #define deb                    Perl_deb
 #define Perl_vdeb              CPerlObj::Perl_vdeb
 #define vdeb                   Perl_vdeb
-#define Perl_deb_growlevel     CPerlObj::Perl_deb_growlevel
-#define deb_growlevel          Perl_deb_growlevel
 #define Perl_debprofdump       CPerlObj::Perl_debprofdump
 #define debprofdump            Perl_debprofdump
 #define Perl_debop             CPerlObj::Perl_debop
 #define magic_wipepack         Perl_magic_wipepack
 #define Perl_magicname         CPerlObj::Perl_magicname
 #define magicname              Perl_magicname
-#if defined(MYMALLOC)
-#define Perl_malloced_size     CPerlObj::Perl_malloced_size
-#define malloced_size          Perl_malloced_size
-#endif
 #define Perl_markstack_grow    CPerlObj::Perl_markstack_grow
 #define markstack_grow         Perl_markstack_grow
 #if defined(USE_LOCALE_COLLATE)
 #endif
 #define Perl_mess              CPerlObj::Perl_mess
 #define mess                   Perl_mess
+#define Perl_vmess             CPerlObj::Perl_vmess
+#define vmess                  Perl_vmess
+#define Perl_qerror            CPerlObj::Perl_qerror
+#define qerror                 Perl_qerror
 #define Perl_mg_clear          CPerlObj::Perl_mg_clear
 #define mg_clear               Perl_mg_clear
 #define Perl_mg_copy           CPerlObj::Perl_mg_copy
 #define newIO                  Perl_newIO
 #define Perl_newLISTOP         CPerlObj::Perl_newLISTOP
 #define newLISTOP              Perl_newLISTOP
+#define Perl_newPADOP          CPerlObj::Perl_newPADOP
+#define newPADOP               Perl_newPADOP
 #define Perl_newPMOP           CPerlObj::Perl_newPMOP
 #define newPMOP                        Perl_newPMOP
 #define Perl_newPVOP           CPerlObj::Perl_newPVOP
 #define Perl_peep              CPerlObj::Perl_peep
 #define peep                   Perl_peep
 #if defined(PERL_OBJECT)
-#define perl_construct         CPerlObj::perl_construct
-#define perl_destruct          CPerlObj::perl_destruct
-#define perl_free              CPerlObj::perl_free
-#define perl_run               CPerlObj::perl_run
-#define perl_parse             CPerlObj::perl_parse
-#else
-#define perl_alloc             CPerlObj::perl_alloc
-#define perl_construct         CPerlObj::perl_construct
-#define perl_destruct          CPerlObj::perl_destruct
-#define perl_free              CPerlObj::perl_free
-#define perl_run               CPerlObj::perl_run
-#define perl_parse             CPerlObj::perl_parse
+#define Perl_construct         CPerlObj::Perl_construct
+#define Perl_destruct          CPerlObj::Perl_destruct
+#define Perl_free              CPerlObj::Perl_free
+#define Perl_run               CPerlObj::Perl_run
+#define Perl_parse             CPerlObj::Perl_parse
+#endif
 #if defined(USE_THREADS)
 #define Perl_new_struct_thread CPerlObj::Perl_new_struct_thread
 #define new_struct_thread      Perl_new_struct_thread
 #endif
-#endif
 #define Perl_call_atexit       CPerlObj::Perl_call_atexit
 #define call_atexit            Perl_call_atexit
 #define Perl_call_argv         CPerlObj::Perl_call_argv
 #define save_delete            Perl_save_delete
 #define Perl_save_destructor   CPerlObj::Perl_save_destructor
 #define save_destructor                Perl_save_destructor
+#define Perl_save_destructor_x CPerlObj::Perl_save_destructor_x
+#define save_destructor_x      Perl_save_destructor_x
 #define Perl_save_freesv       CPerlObj::Perl_save_freesv
 #define save_freesv            Perl_save_freesv
 #define Perl_save_freeop       CPerlObj::Perl_save_freeop
 #define save_scalar            Perl_save_scalar
 #define Perl_save_pptr         CPerlObj::Perl_save_pptr
 #define save_pptr              Perl_save_pptr
+#define Perl_save_vptr         CPerlObj::Perl_save_vptr
+#define save_vptr              Perl_save_vptr
 #define Perl_save_re_context   CPerlObj::Perl_save_re_context
 #define save_re_context                Perl_save_re_context
 #define Perl_save_sptr         CPerlObj::Perl_save_sptr
 #if defined(MYMALLOC)
 #define Perl_dump_mstats       CPerlObj::Perl_dump_mstats
 #define dump_mstats            Perl_dump_mstats
-#define Perl_malloc            CPerlObj::Perl_malloc
-#define malloc                 Perl_malloc
-#define Perl_calloc            CPerlObj::Perl_calloc
-#define calloc                 Perl_calloc
-#define Perl_realloc           CPerlObj::Perl_realloc
-#define realloc                        Perl_realloc
-#define Perl_mfree             CPerlObj::Perl_mfree
-#define mfree                  Perl_mfree
 #endif
 #define Perl_safesysmalloc     CPerlObj::Perl_safesysmalloc
 #define safesysmalloc          Perl_safesysmalloc
 #define my_attrs               Perl_my_attrs
 #define Perl_boot_core_xsutils CPerlObj::Perl_boot_core_xsutils
 #define boot_core_xsutils      Perl_boot_core_xsutils
+#if defined(USE_ITHREADS)
+#define Perl_cx_dup            CPerlObj::Perl_cx_dup
+#define cx_dup                 Perl_cx_dup
+#define Perl_si_dup            CPerlObj::Perl_si_dup
+#define si_dup                 Perl_si_dup
+#define Perl_ss_dup            CPerlObj::Perl_ss_dup
+#define ss_dup                 Perl_ss_dup
+#define Perl_any_dup           CPerlObj::Perl_any_dup
+#define any_dup                        Perl_any_dup
+#define Perl_he_dup            CPerlObj::Perl_he_dup
+#define he_dup                 Perl_he_dup
+#define Perl_re_dup            CPerlObj::Perl_re_dup
+#define re_dup                 Perl_re_dup
+#define Perl_fp_dup            CPerlObj::Perl_fp_dup
+#define fp_dup                 Perl_fp_dup
+#define Perl_dirp_dup          CPerlObj::Perl_dirp_dup
+#define dirp_dup               Perl_dirp_dup
+#define Perl_gp_dup            CPerlObj::Perl_gp_dup
+#define gp_dup                 Perl_gp_dup
+#define Perl_mg_dup            CPerlObj::Perl_mg_dup
+#define mg_dup                 Perl_mg_dup
+#define Perl_sv_dup            CPerlObj::Perl_sv_dup
+#define sv_dup                 Perl_sv_dup
+#if defined(HAVE_INTERP_INTERN)
+#define Perl_sys_intern_dup    CPerlObj::Perl_sys_intern_dup
+#define sys_intern_dup         Perl_sys_intern_dup
+#endif
+#define Perl_ptr_table_new     CPerlObj::Perl_ptr_table_new
+#define ptr_table_new          Perl_ptr_table_new
+#define Perl_ptr_table_fetch   CPerlObj::Perl_ptr_table_fetch
+#define ptr_table_fetch                Perl_ptr_table_fetch
+#define Perl_ptr_table_store   CPerlObj::Perl_ptr_table_store
+#define ptr_table_store                Perl_ptr_table_store
+#define Perl_ptr_table_split   CPerlObj::Perl_ptr_table_split
+#define ptr_table_split                Perl_ptr_table_split
+#endif
 #if defined(PERL_OBJECT)
+#else
 #endif
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 #define S_avhv_index_sv                CPerlObj::S_avhv_index_sv
 #define is_handle_constructor  S_is_handle_constructor
 #define S_gv_ename             CPerlObj::S_gv_ename
 #define gv_ename               S_gv_ename
+#define S_cv_dump              CPerlObj::S_cv_dump
+#define cv_dump                        S_cv_dump
 #define S_cv_clone2            CPerlObj::S_cv_clone2
 #define cv_clone2              S_cv_clone2
 #define S_scalar_mod_type      CPerlObj::S_scalar_mod_type
 #define more_xnv               S_more_xnv
 #define S_more_xpv             CPerlObj::S_more_xpv
 #define more_xpv               S_more_xpv
+#define S_more_xpviv           CPerlObj::S_more_xpviv
+#define more_xpviv             S_more_xpviv
+#define S_more_xpvnv           CPerlObj::S_more_xpvnv
+#define more_xpvnv             S_more_xpvnv
+#define S_more_xpvcv           CPerlObj::S_more_xpvcv
+#define more_xpvcv             S_more_xpvcv
+#define S_more_xpvav           CPerlObj::S_more_xpvav
+#define more_xpvav             S_more_xpvav
+#define S_more_xpvhv           CPerlObj::S_more_xpvhv
+#define more_xpvhv             S_more_xpvhv
+#define S_more_xpvmg           CPerlObj::S_more_xpvmg
+#define more_xpvmg             S_more_xpvmg
+#define S_more_xpvlv           CPerlObj::S_more_xpvlv
+#define more_xpvlv             S_more_xpvlv
+#define S_more_xpvbm           CPerlObj::S_more_xpvbm
+#define more_xpvbm             S_more_xpvbm
 #define S_more_xrv             CPerlObj::S_more_xrv
 #define more_xrv               S_more_xrv
 #define S_new_xiv              CPerlObj::S_new_xiv
 #define new_xnv                        S_new_xnv
 #define S_new_xpv              CPerlObj::S_new_xpv
 #define new_xpv                        S_new_xpv
+#define S_new_xpviv            CPerlObj::S_new_xpviv
+#define new_xpviv              S_new_xpviv
+#define S_new_xpvnv            CPerlObj::S_new_xpvnv
+#define new_xpvnv              S_new_xpvnv
+#define S_new_xpvcv            CPerlObj::S_new_xpvcv
+#define new_xpvcv              S_new_xpvcv
+#define S_new_xpvav            CPerlObj::S_new_xpvav
+#define new_xpvav              S_new_xpvav
+#define S_new_xpvhv            CPerlObj::S_new_xpvhv
+#define new_xpvhv              S_new_xpvhv
+#define S_new_xpvmg            CPerlObj::S_new_xpvmg
+#define new_xpvmg              S_new_xpvmg
+#define S_new_xpvlv            CPerlObj::S_new_xpvlv
+#define new_xpvlv              S_new_xpvlv
+#define S_new_xpvbm            CPerlObj::S_new_xpvbm
+#define new_xpvbm              S_new_xpvbm
 #define S_new_xrv              CPerlObj::S_new_xrv
 #define new_xrv                        S_new_xrv
 #define S_del_xiv              CPerlObj::S_del_xiv
 #define del_xnv                        S_del_xnv
 #define S_del_xpv              CPerlObj::S_del_xpv
 #define del_xpv                        S_del_xpv
+#define S_del_xpviv            CPerlObj::S_del_xpviv
+#define del_xpviv              S_del_xpviv
+#define S_del_xpvnv            CPerlObj::S_del_xpvnv
+#define del_xpvnv              S_del_xpvnv
+#define S_del_xpvcv            CPerlObj::S_del_xpvcv
+#define del_xpvcv              S_del_xpvcv
+#define S_del_xpvav            CPerlObj::S_del_xpvav
+#define del_xpvav              S_del_xpvav
+#define S_del_xpvhv            CPerlObj::S_del_xpvhv
+#define del_xpvhv              S_del_xpvhv
+#define S_del_xpvmg            CPerlObj::S_del_xpvmg
+#define del_xpvmg              S_del_xpvmg
+#define S_del_xpvlv            CPerlObj::S_del_xpvlv
+#define del_xpvlv              S_del_xpvlv
+#define S_del_xpvbm            CPerlObj::S_del_xpvbm
+#define del_xpvbm              S_del_xpvbm
 #define S_del_xrv              CPerlObj::S_del_xrv
 #define del_xrv                        S_del_xrv
 #define S_sv_unglob            CPerlObj::S_sv_unglob
 #define S_isa_lookup           CPerlObj::S_isa_lookup
 #define isa_lookup             S_isa_lookup
 #endif
-#if defined(PERL_IN_XSUTILS_C) || defined(PERL_DECL_PROT)
-#define S_modify_SV_attributes CPerlObj::S_modify_SV_attributes
-#define modify_SV_attributes   S_modify_SV_attributes
-#endif
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 #define S_mess_alloc           CPerlObj::S_mess_alloc
 #define mess_alloc             S_mess_alloc
 #define xstat                  S_xstat
 #  endif
 #endif
+#if defined(PERL_OBJECT)
+#endif
 #define Perl_ck_anoncode       CPerlObj::Perl_ck_anoncode
 #define ck_anoncode            Perl_ck_anoncode
 #define Perl_ck_bitop          CPerlObj::Perl_ck_bitop
 #define ck_grep                        Perl_ck_grep
 #define Perl_ck_index          CPerlObj::Perl_ck_index
 #define ck_index               Perl_ck_index
+#define Perl_ck_join           CPerlObj::Perl_ck_join
+#define ck_join                        Perl_ck_join
 #define Perl_ck_lengthconst    CPerlObj::Perl_ck_lengthconst
 #define ck_lengthconst         Perl_ck_lengthconst
 #define Perl_ck_lfun           CPerlObj::Perl_ck_lfun
 #define pp_leaveloop           Perl_pp_leaveloop
 #define Perl_pp_leavesub       CPerlObj::Perl_pp_leavesub
 #define pp_leavesub            Perl_pp_leavesub
+#define Perl_pp_leavesublv     CPerlObj::Perl_pp_leavesublv
+#define pp_leavesublv          Perl_pp_leavesublv
 #define Perl_pp_leavetry       CPerlObj::Perl_pp_leavetry
 #define pp_leavetry            Perl_pp_leavetry
 #define Perl_pp_leavewrite     CPerlObj::Perl_pp_leavewrite
  */
 
 #if !defined(PERL_CORE)
-#  define sv_setptrobj(rv,ptr,name)    sv_setref_iv(rv,name,(IV)ptr)
-#  define sv_setptrref(rv,ptr)         sv_setref_iv(rv,Nullch,(IV)ptr)
+#  define sv_setptrobj(rv,ptr,name)    sv_setref_iv(rv,name,PTR2IV(ptr))
+#  define sv_setptrref(rv,ptr)         sv_setref_iv(rv,Nullch,PTR2IV(ptr))
 #endif
 
 #if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) && !defined(PERL_BINCOMPAT_5005)
    The following are not like that, but since they had a "perl_"
    prefix in previous versions, we provide compatibility macros.
  */
-#  define perl_atexit                  call_atexit
-#  define perl_call_argv               call_argv
-#  define perl_call_pv                 call_pv
-#  define perl_call_method             call_method
-#  define perl_call_sv                 call_sv
-#  define perl_eval_sv                 eval_sv
-#  define perl_eval_pv                 eval_pv
-#  define perl_require_pv              require_pv
-#  define perl_get_sv                  get_sv
-#  define perl_get_av                  get_av
-#  define perl_get_hv                  get_hv
-#  define perl_get_cv                  get_cv
-#  define perl_init_i18nl10n           init_i18nl10n
-#  define perl_init_i18nl14n           init_i18nl14n
-#  define perl_new_ctype               new_ctype
-#  define perl_new_collate             new_collate
-#  define perl_new_numeric             new_numeric
+#  define perl_atexit(a,b)             call_atexit(a,b)
+#  define perl_call_argv(a,b,c)                call_argv(a,b,c)
+#  define perl_call_pv(a,b)            call_pv(a,b)
+#  define perl_call_method(a,b)                call_method(a,b)
+#  define perl_call_sv(a,b)            call_sv(a,b)
+#  define perl_eval_sv(a,b)            eval_sv(a,b)
+#  define perl_eval_pv(a,b)            eval_pv(a,b)
+#  define perl_require_pv(a)           require_pv(a)
+#  define perl_get_sv(a,b)             get_sv(a,b)
+#  define perl_get_av(a,b)             get_av(a,b)
+#  define perl_get_hv(a,b)             get_hv(a,b)
+#  define perl_get_cv(a,b)             get_cv(a,b)
+#  define perl_init_i18nl10n(a)                init_i18nl10n(a)
+#  define perl_init_i18nl14n(a)                init_i18nl14n(a)
+#  define perl_new_ctype(a)            new_ctype(a)
+#  define perl_new_collate(a)          new_collate(a)
+#  define perl_new_numeric(a)          new_numeric(a)
 
 /* varargs functions can't be handled with CPP macros. :-(
    This provides a set of compatibility functions that don't take
 #  define deb                          Perl_deb_nocontext
 #  define die                          Perl_die_nocontext
 #  define form                         Perl_form_nocontext
+#  define mess                         Perl_mess_nocontext
 #  define newSVpvf                     Perl_newSVpvf_nocontext
 #  define sv_catpvf                    Perl_sv_catpvf_nocontext
 #  define sv_setpvf                    Perl_sv_setpvf_nocontext
 #  define Perl_die_nocontext           Perl_die
 #  define Perl_deb_nocontext           Perl_deb
 #  define Perl_form_nocontext          Perl_form
+#  define Perl_mess_nocontext          Perl_mess
 #  define Perl_newSVpvf_nocontext      Perl_newSVpvf
 #  define Perl_sv_catpvf_nocontext     Perl_sv_catpvf
 #  define Perl_sv_setpvf_nocontext     Perl_sv_setpvf