summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-03-12 00:51:08 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-03-12 00:51:08 +0000
commit01f988be05578e1f4609174755be9d7b61543c58 (patch)
tree7ebcceb4314c8b249ec6cc249e699dc385acd199
parent3bd495df69b982704c59fc1ecbed71e5112e7da0 (diff)
downloadperl-01f988be05578e1f4609174755be9d7b61543c58.tar.gz
[asperl] added AS patch#12 with minor changes
p4raw-id: //depot/asperl@806
-rw-r--r--ObjXSub.h850
-rw-r--r--bytecode.h10
-rw-r--r--byterun.c94
-rw-r--r--doio.c4
-rw-r--r--iplio.h1
-rw-r--r--lib/ExtUtils/MM_Unix.pm80
-rw-r--r--lib/ExtUtils/MakeMaker.pm10
-rw-r--r--lib/ExtUtils/Mksymlists.pm6
-rwxr-xr-xlib/ExtUtils/xsubpp8
-rw-r--r--objpp.h10
-rw-r--r--perl.c34
-rw-r--r--perllio.h2
-rw-r--r--proto.h14
-rw-r--r--regcomp.c2
-rw-r--r--win32/Makefile184
-rw-r--r--win32/config_h.PL8
-rw-r--r--win32/runperl.c4
17 files changed, 805 insertions, 516 deletions
diff --git a/ObjXSub.h b/ObjXSub.h
index 46c52d5d3f..c0a9c9ba92 100644
--- a/ObjXSub.h
+++ b/ObjXSub.h
@@ -666,8 +666,10 @@
#undef amagic_call
#define amagic_call pPerl->Perl_amagic_call
+#undef Perl_GetVars
+#define Perl_GetVars pPerl->Perl_GetVars
#undef Gv_AMupdate
-#define Gv_AMupdate pPerl->Gv_AMupdate
+#define Gv_AMupdate pPerl->Perl_Gv_AMupdate
#undef append_elem
#define append_elem pPerl->Perl_append_elem
#undef append_list
@@ -694,6 +696,8 @@
#define av_pop pPerl->Perl_av_pop
#undef av_push
#define av_push pPerl->Perl_av_push
+#undef av_reify
+#define av_reify pPerl->Perl_av_reify
#undef av_shift
#define av_shift pPerl->Perl_av_shift
#undef av_store
@@ -702,8 +706,32 @@
#define av_undef pPerl->Perl_av_undef
#undef av_unshift
#define av_unshift pPerl->Perl_av_unshift
-#undef bad_type
-#define bad_type pPerl->bad_type
+#undef avhv_delete
+#define avhv_delete pPerl->Perl_avhv_delete
+#undef avhv_delete_ent
+#define avhv_delete_ent pPerl->Perl_avhv_delete_ent
+#undef avhv_exists
+#define avhv_exists pPerl->Perl_avhv_exists
+#undef avhv_exists_ent
+#define avhv_exists_ent pPerl->Perl_avhv_exists_ent
+#undef avhv_fetch
+#define avhv_fetch pPerl->Perl_avhv_fetch
+#undef avhv_fetch_ent
+#define avhv_fetch_ent pPerl->Perl_avhv_fetch_ent
+#undef avhv_iterinit
+#define avhv_iterinit pPerl->Perl_avhv_iterinit
+#undef avhv_iternext
+#define avhv_iternext pPerl->Perl_avhv_iternext
+#undef avhv_iternextsv
+#define avhv_iternextsv pPerl->Perl_avhv_iternextsv
+#undef avhv_iterval
+#define avhv_iterval pPerl->Perl_avhv_iterval
+#undef avhv_keys
+#define avhv_keys pPerl->Perl_avhv_keys
+#undef avhv_store
+#define avhv_store pPerl->Perl_avhv_store
+#undef avhv_store_ent
+#define avhv_store_ent pPerl->Perl_avhv_store_ent
#undef bind_match
#define bind_match pPerl->Perl_bind_match
#undef block_end
@@ -717,7 +745,7 @@
#undef cando
#define cando pPerl->Perl_cando
#undef cast_ulong
-#define cast_ulong pPerl->cast_ulong
+#define cast_ulong pPerl->Perl_cast_ulong
#undef checkcomma
#define checkcomma pPerl->Perl_checkcomma
#undef check_uni
@@ -782,52 +810,40 @@
#define ck_svconst pPerl->Perl_ck_svconst
#undef ck_trunc
#define ck_trunc pPerl->Perl_ck_trunc
-#undef closedir
-#define closedir pPerl->closedir
+#undef condpair_magic
+#define condpair_magic pPerl->Perl_condpair_magic
#undef convert
#define convert pPerl->Perl_convert
#undef cpytill
#define cpytill pPerl->Perl_cpytill
#undef croak
#define croak pPerl->Perl_croak
+#undef cv_ckproto
+#define cv_ckproto pPerl->Perl_cv_ckproto
#undef cv_clone
#define cv_clone pPerl->Perl_cv_clone
+#undef cv_const_sv
+#define cv_const_sv pPerl->Perl_cv_const_sv
#undef cv_undef
#define cv_undef pPerl->Perl_cv_undef
#undef cxinc
#define cxinc pPerl->Perl_cxinc
-#undef del_xiv
-#define del_xiv pPerl->del_xiv
-#undef del_xnv
-#define del_xnv pPerl->del_xnv
-#undef del_xpv
-#define del_xpv pPerl->del_xpv
-#undef del_xrv
-#define del_xrv pPerl->del_xrv
+#undef delimcpy
+#define delimcpy pPerl->Perl_delimcpy
#undef deprecate
#define deprecate pPerl->Perl_deprecate
#undef die
#define die pPerl->Perl_die
#undef die_where
#define die_where pPerl->Perl_die_where
-#undef doencodes
-#define doencodes pPerl->doencodes
-#undef doform
-#define doform pPerl->doform
-#undef doparseform
-#define doparseform pPerl->doparseform
#undef dopoptoeval
#define dopoptoeval pPerl->Perl_dopoptoeval
-#undef dopoptolabel
-#define dopoptolabel pPerl->dopoptolabel
-#undef dopoptoloop
-#define dopoptoloop pPerl->dopoptoloop
-#undef dopoptosub
-#define dopoptosub pPerl->dopoptosub
#undef dounwind
#define dounwind pPerl->Perl_dounwind
#undef do_aexec
#define do_aexec pPerl->Perl_do_aexec
+#undef do_chomp
+#define do_chomp pPerl->Perl_do_chomp
#undef do_chop
#define do_chop pPerl->Perl_do_chop
#undef do_close
@@ -838,10 +854,36 @@
#define do_exec pPerl->Perl_do_exec
#undef do_execfree
#define do_execfree pPerl->Perl_do_execfree
+#undef do_join
+#define do_join pPerl->Perl_do_join
+#undef do_kv
+#define do_kv pPerl->Perl_do_kv
#undef do_open
#define do_open pPerl->Perl_do_open
+#undef do_pipe
+#define do_pipe pPerl->Perl_do_pipe
+#undef do_print
+#define do_print pPerl->Perl_do_print
+#undef do_readline
+#define do_readline pPerl->Perl_do_readline
+#undef do_seek
+#define do_seek pPerl->Perl_do_seek
+#undef do_sprintf
+#define do_sprintf pPerl->Perl_do_sprintf
+#undef do_sysseek
+#define do_sysseek pPerl->Perl_do_sysseek
+#undef do_tell
+#define do_tell pPerl->Perl_do_tell
+#undef do_trans
+#define do_trans pPerl->Perl_do_trans
+#undef do_vecset
+#define do_vecset pPerl->Perl_do_vecset
+#undef do_vop
+#define do_vop pPerl->Perl_do_vop
#undef dowantarray
#define dowantarray pPerl->Perl_dowantarray
+#undef dump_all
+#define dump_all pPerl->Perl_dump_all
#undef fbm_compile
#define fbm_compile pPerl->Perl_fbm_compile
#undef fbm_instr
@@ -850,12 +892,10 @@
#define filter_add pPerl->Perl_filter_add
#undef filter_del
#define filter_del pPerl->Perl_filter_del
-#undef filter_gets
-#define filter_gets pPerl->filter_gets
#undef filter_read
#define filter_read pPerl->Perl_filter_read
-#undef find_beginning
-#define find_beginning pPerl->find_beginning
+#undef find_threadsv
+#define find_threadsv pPerl->Perl_find_threadsv
#undef force_ident
#define force_ident pPerl->Perl_force_ident
#undef force_list
@@ -874,8 +914,6 @@
#define free_tmps pPerl->Perl_free_tmps
#undef gen_constant_list
#define gen_constant_list pPerl->Perl_gen_constant_list
-#undef getlogin
-#define getlogin pPerl->getlogin
#undef get_op_descs
#define get_op_descs pPerl->Perl_get_op_descs
#undef get_op_names
@@ -890,6 +928,8 @@
#define gv_HVadd pPerl->Perl_gv_HVadd
#undef gv_IOadd
#define gv_IOadd pPerl->Perl_gv_IOadd
+#undef gv_autoload4
+#define gv_autoload4 pPerl->Perl_gv_autoload4
#undef gv_check
#define gv_check pPerl->Perl_gv_check
#undef gv_efullname
@@ -912,8 +952,6 @@
#define gv_fullname3 pPerl->Perl_gv_fullname3
#undef gv_init
#define gv_init pPerl->Perl_gv_init
-#undef gv_init_sv
-#define gv_init_sv pPerl->gv_init_sv
#undef gv_stashpv
#define gv_stashpv pPerl->Perl_gv_stashpv
#undef gv_stashpvn
@@ -924,14 +962,12 @@
#define he_delayfree pPerl->Perl_he_delayfree
#undef he_free
#define he_free pPerl->Perl_he_free
-#undef hfreeentries
-#define hfreeentries pPerl->hfreeentries
#undef hoistmust
#define hoistmust pPerl->Perl_hoistmust
-#undef hsplit
-#define hsplit pPerl->hsplit
#undef hv_clear
#define hv_clear pPerl->Perl_hv_clear
+#undef hv_delayfree_ent
+#define hv_delayfree_ent pPerl->Perl_hv_delayfree_ent
#undef hv_delete
#define hv_delete pPerl->Perl_hv_delete
#undef hv_delete_ent
@@ -944,6 +980,8 @@
#define hv_fetch pPerl->Perl_hv_fetch
#undef hv_fetch_ent
#define hv_fetch_ent pPerl->Perl_hv_fetch_ent
+#undef hv_free_ent
+#define hv_free_ent pPerl->Perl_hv_free_ent
#undef hv_iterinit
#define hv_iterinit pPerl->Perl_hv_iterinit
#undef hv_iterkey
@@ -968,6 +1006,8 @@
#define hv_undef pPerl->Perl_hv_undef
#undef ibcmp
#define ibcmp pPerl->Perl_ibcmp
+#undef ibcmp_locale
+#define ibcmp_locale pPerl->Perl_ibcmp_locale
#undef incpush
#define incpush pPerl->incpush
#undef incline
@@ -976,14 +1016,20 @@
#define incl_perldb pPerl->incl_perldb
#undef ingroup
#define ingroup pPerl->Perl_ingroup
+#undef init_stacks
+#define init_stacks pPerl->Perl_init_stacks
#undef instr
#define instr pPerl->Perl_instr
+#undef intro_my
+#define intro_my pPerl->Perl_intro_my
#undef intuit_method
#define intuit_method pPerl->intuit_method
#undef intuit_more
#define intuit_more pPerl->Perl_intuit_more
#undef invert
#define invert pPerl->Perl_invert
+#undef io_close
+#define io_close pPerl->Perl_io_close
#undef ioctl
#define ioctl pPerl->ioctl
#undef jmaybe
@@ -1008,6 +1054,8 @@
#define localize pPerl->Perl_localize
#undef looks_like_number
#define looks_like_number pPerl->Perl_looks_like_number
+#undef magic_clear_all_env
+#define magic_clear_all_env pPerl->Perl_magic_clear_all_env
#undef magic_clearenv
#define magic_clearenv pPerl->Perl_magic_clearenv
#undef magic_clearpack
@@ -1016,10 +1064,16 @@
#define magic_clearsig pPerl->Perl_magic_clearsig
#undef magic_existspack
#define magic_existspack pPerl->Perl_magic_existspack
+#undef magic_freedefelem
+#define magic_freedefelem pPerl->Perl_magic_freedefelem
+#undef magic_freeregexp
+#define magic_freeregexp pPerl->Perl_magic_freeregexp
#undef magic_get
#define magic_get pPerl->Perl_magic_get
#undef magic_getarylen
#define magic_getarylen pPerl->Perl_magic_getarylen
+#undef magic_getdefelem
+#define magic_getdefelem pPerl->Perl_magic_getdefelem
#undef magic_getpack
#define magic_getpack pPerl->Perl_magic_getpack
#undef magic_getglob
@@ -1036,613 +1090,691 @@
#define magic_len pPerl->Perl_magic_len
#undef magic_methpack
#define magic_methpack pPerl->magic_methpack
+#undef magic_mutexfree
+#define magic_mutexfree pPerl->Perl_magic_mutexfree
#undef magic_nextpack
#define magic_nextpack pPerl->Perl_magic_nextpack
#undef magic_set
#define magic_set pPerl->Perl_magic_set
+#undef magic_set_all_env
+#define magic_set_all_env pPerl->Perl_magic_set_all_env
#undef magic_setamagic
#define magic_setamagic pPerl->Perl_magic_setamagic
#undef magic_setarylen
#define magic_setarylen pPerl->Perl_magic_setarylen
#undef magic_setbm
#define magic_setbm pPerl->Perl_magic_setbm
+#undef magic_setcollxfrm
+#define magic_setcollxfrm pPerl->Perl_magic_setcollxfrm
#undef magic_setdbline
#define magic_setdbline pPerl->Perl_magic_setdbline
+#undef magic_setdefelem
+#define magic_setdefelem pPerl->Perl_magic_setdefelem
#undef magic_setenv
#define magic_setenv pPerl->Perl_magic_setenv
+#undef magic_setfm
+#define magic_setfm pPerl->Perl_magic_setfm
#undef magic_setisa
-#define magic_setisa pPerl->Perl_magic_setisa
+#define magic_setisa pPerl->Perl_magic_setisa
#undef magic_setglob
-#define magic_setglob pPerl->Perl_magic_setglob
+#define magic_setglob pPerl->Perl_magic_setglob
#undef magic_setmglob
-#define magic_setmglob pPerl->Perl_magic_setmglob
+#define magic_setmglob pPerl->Perl_magic_setmglob
#undef magic_setnkeys
-#define magic_setnkeys pPerl->Perl_magic_setnkeys
+#define magic_setnkeys pPerl->Perl_magic_setnkeys
#undef magic_setpack
-#define magic_setpack pPerl->Perl_magic_setpack
+#define magic_setpack pPerl->Perl_magic_setpack
#undef magic_setpos
-#define magic_setpos pPerl->Perl_magic_setpos
+#define magic_setpos pPerl->Perl_magic_setpos
#undef magic_setsig
-#define magic_setsig pPerl->Perl_magic_setsig
+#define magic_setsig pPerl->Perl_magic_setsig
#undef magic_setsubstr
-#define magic_setsubstr pPerl->Perl_magic_setsubstr
+#define magic_setsubstr pPerl->Perl_magic_setsubstr
#undef magic_settaint
-#define magic_settaint pPerl->Perl_magic_settaint
+#define magic_settaint pPerl->Perl_magic_settaint
#undef magic_setuvar
-#define magic_setuvar pPerl->Perl_magic_setuvar
+#define magic_setuvar pPerl->Perl_magic_setuvar
#undef magic_setvec
-#define magic_setvec pPerl->Perl_magic_setvec
+#define magic_setvec pPerl->Perl_magic_setvec
+#undef magic_sizepack
+#define magic_sizepack pPerl->Perl_magic_sizepack
#undef magic_wipepack
-#define magic_wipepack pPerl->Perl_magic_wipepack
+#define magic_wipepack pPerl->Perl_magic_wipepack
#undef magicname
-#define magicname pPerl->Perl_magicname
+#define magicname pPerl->Perl_magicname
#undef markstack_grow
-#define markstack_grow pPerl->Perl_markstack_grow
+#define markstack_grow pPerl->Perl_markstack_grow
+#undef mem_collxfrm
+#define mem_collxfrm pPerl->Perl_mem_collxfrm
#undef mess
-#define mess pPerl->Perl_mess
+#define mess pPerl->Perl_mess
#undef mg_clear
-#define mg_clear pPerl->Perl_mg_clear
+#define mg_clear pPerl->Perl_mg_clear
#undef mg_copy
-#define mg_copy pPerl->Perl_mg_copy
+#define mg_copy pPerl->Perl_mg_copy
#undef mg_find
-#define mg_find pPerl->Perl_mg_find
+#define mg_find pPerl->Perl_mg_find
#undef mg_free
-#define mg_free pPerl->Perl_mg_free
+#define mg_free pPerl->Perl_mg_free
#undef mg_get
-#define mg_get pPerl->Perl_mg_get
+#define mg_get pPerl->Perl_mg_get
#undef mg_magical
-#define mg_magical pPerl->Perl_mg_magical
+#define mg_magical pPerl->Perl_mg_magical
+#undef mg_length
+#define mg_length pPerl->Perl_mg_length
#undef mg_set
-#define mg_set pPerl->Perl_mg_set
+#define mg_set pPerl->Perl_mg_set
+#undef mg_size
+#define mg_size pPerl->Perl_mg_size
#undef missingterm
-#define missingterm pPerl->missingterm
+#define missingterm pPerl->missingterm
#undef mod
-#define mod pPerl->Perl_mod
+#define mod pPerl->Perl_mod
#undef modkids
-#define modkids pPerl->Perl_modkids
+#define modkids pPerl->Perl_modkids
#undef moreswitches
-#define moreswitches pPerl->Perl_moreswitches
+#define moreswitches pPerl->Perl_moreswitches
#undef more_sv
-#define more_sv pPerl->more_sv
+#define more_sv pPerl->more_sv
#undef more_xiv
-#define more_xiv pPerl->more_xiv
+#define more_xiv pPerl->more_xiv
#undef more_xnv
-#define more_xnv pPerl->more_xnv
+#define more_xnv pPerl->more_xnv
#undef more_xpv
-#define more_xpv pPerl->more_xpv
+#define more_xpv pPerl->more_xpv
#undef more_xrv
-#define more_xrv pPerl->more_xrv
+#define more_xrv pPerl->more_xrv
#undef my
-#define my pPerl->Perl_my
+#define my pPerl->Perl_my
#undef my_bcopy
-#define my_bcopy pPerl->Perl_my_bcopy
+#define my_bcopy pPerl->Perl_my_bcopy
#undef my_bzero
-#define my_bzero pPerl->Perl_my_bzero
+#define my_bzero pPerl->Perl_my_bzero
+#undef my_chsize
+#define my_chsize pPerl->Perl_my_chsize
#undef my_exit
-#define my_exit pPerl->Perl_my_exit
+#define my_exit pPerl->Perl_my_exit
+#undef my_failure_exit
+#define my_failure_exit pPerl->Perl_my_failure_exit
+#undef my_htonl
+#define my_htonl pPerl->Perl_my_htonl
#undef my_lstat
-#define my_lstat pPerl->Perl_my_lstat
+#define my_lstat pPerl->Perl_my_lstat
#undef my_memcmp
-#define my_memcmp pPerl->my_memcmp
+#define my_memcmp pPerl->my_memcmp
+#undef my_ntohl
+#define my_ntohl pPerl->Perl_my_ntohl
#undef my_pclose
-#define my_pclose pPerl->Perl_my_pclose
+#define my_pclose pPerl->Perl_my_pclose
#undef my_popen
-#define my_popen pPerl->Perl_my_popen
+#define my_popen pPerl->Perl_my_popen
#undef my_setenv
-#define my_setenv pPerl->Perl_my_setenv
+#define my_setenv pPerl->Perl_my_setenv
#undef my_stat
-#define my_stat pPerl->Perl_my_stat
+#define my_stat pPerl->Perl_my_stat
+#undef my_swap
+#define my_swap pPerl->Perl_my_swap
#undef my_unexec
-#define my_unexec pPerl->Perl_my_unexec
+#define my_unexec pPerl->Perl_my_unexec
#undef newANONLIST
-#define newANONLIST pPerl->Perl_newANONLIST
+#define newANONLIST pPerl->Perl_newANONLIST
#undef newANONHASH
-#define newANONHASH pPerl->Perl_newANONHASH
+#define newANONHASH pPerl->Perl_newANONHASH
#undef newANONSUB
-#define newANONSUB pPerl->Perl_newANONSUB
+#define newANONSUB pPerl->Perl_newANONSUB
#undef newASSIGNOP
-#define newASSIGNOP pPerl->Perl_newASSIGNOP
+#define newASSIGNOP pPerl->Perl_newASSIGNOP
#undef newCONDOP
-#define newCONDOP pPerl->Perl_newCONDOP
+#define newCONDOP pPerl->Perl_newCONDOP
#undef newFORM
-#define newFORM pPerl->Perl_newFORM
+#define newFORM pPerl->Perl_newFORM
#undef newFOROP
-#define newFOROP pPerl->Perl_newFOROP
+#define newFOROP pPerl->Perl_newFOROP
#undef newLOGOP
-#define newLOGOP pPerl->Perl_newLOGOP
+#define newLOGOP pPerl->Perl_newLOGOP
#undef newLOOPEX
-#define newLOOPEX pPerl->Perl_newLOOPEX
+#define newLOOPEX pPerl->Perl_newLOOPEX
#undef newLOOPOP
-#define newLOOPOP pPerl->Perl_newLOOPOP
+#define newLOOPOP pPerl->Perl_newLOOPOP
#undef newMETHOD
-#define newMETHOD pPerl->Perl_newMETHOD
+#define newMETHOD pPerl->Perl_newMETHOD
#undef newNULLLIST
-#define newNULLLIST pPerl->Perl_newNULLLIST
+#define newNULLLIST pPerl->Perl_newNULLLIST
#undef newOP
-#define newOP pPerl->Perl_newOP
+#define newOP pPerl->Perl_newOP
#undef newPROG
-#define newPROG pPerl->Perl_newPROG
+#define newPROG pPerl->Perl_newPROG
#undef newRANGE
-#define newRANGE pPerl->Perl_newRANGE
+#define newRANGE pPerl->Perl_newRANGE
#undef newSLICEOP
-#define newSLICEOP pPerl->Perl_newSLICEOP
+#define newSLICEOP pPerl->Perl_newSLICEOP
#undef newSTATEOP
-#define newSTATEOP pPerl->Perl_newSTATEOP
+#define newSTATEOP pPerl->Perl_newSTATEOP
#undef newSUB
-#define newSUB pPerl->Perl_newSUB
+#define newSUB pPerl->Perl_newSUB
#undef newXS
-#define newXS pPerl->Perl_newXS
+#define newXS pPerl->Perl_newXS
#undef newAV
-#define newAV pPerl->Perl_newAV
+#define newAV pPerl->Perl_newAV
#undef newAVREF
-#define newAVREF pPerl->Perl_newAVREF
+#define newAVREF pPerl->Perl_newAVREF
#undef newBINOP
-#define newBINOP pPerl->Perl_newBINOP
+#define newBINOP pPerl->Perl_newBINOP
#undef newCVREF
-#define newCVREF pPerl->Perl_newCVREF
+#define newCVREF pPerl->Perl_newCVREF
#undef newCVOP
-#define newCVOP pPerl->Perl_newCVOP
+#define newCVOP pPerl->Perl_newCVOP
#undef newGVOP
-#define newGVOP pPerl->Perl_newGVOP
+#define newGVOP pPerl->Perl_newGVOP
#undef newGVgen
-#define newGVgen pPerl->Perl_newGVgen
+#define newGVgen pPerl->Perl_newGVgen
#undef newGVREF
-#define newGVREF pPerl->Perl_newGVREF
+#define newGVREF pPerl->Perl_newGVREF
#undef newHVREF
-#define newHVREF pPerl->Perl_newHVREF
+#define newHVREF pPerl->Perl_newHVREF
#undef newHV
-#define newHV pPerl->Perl_newHV
+#define newHV pPerl->Perl_newHV
#undef newIO
-#define newIO pPerl->Perl_newIO
+#define newIO pPerl->Perl_newIO
#undef newLISTOP
-#define newLISTOP pPerl->Perl_newLISTOP
+#define newLISTOP pPerl->Perl_newLISTOP
#undef newPMOP
-#define newPMOP pPerl->Perl_newPMOP
+#define newPMOP pPerl->Perl_newPMOP
#undef newPVOP
-#define newPVOP pPerl->Perl_newPVOP
+#define newPVOP pPerl->Perl_newPVOP
#undef newRV
-#define newRV pPerl->Perl_newRV
+#define newRV pPerl->Perl_newRV
#undef newRV_noinc
#undef Perl_newRV_noinc
-#define newRV_noinc pPerl->Perl_newRV_noinc
+#define newRV_noinc pPerl->Perl_newRV_noinc
#undef newSV
-#define newSV pPerl->Perl_newSV
+#define newSV pPerl->Perl_newSV
#undef newSVREF
-#define newSVREF pPerl->Perl_newSVREF
+#define newSVREF pPerl->Perl_newSVREF
#undef newSVOP
-#define newSVOP pPerl->Perl_newSVOP
+#define newSVOP pPerl->Perl_newSVOP
#undef newSViv
-#define newSViv pPerl->Perl_newSViv
+#define newSViv pPerl->Perl_newSViv
#undef newSVnv
-#define newSVnv pPerl->Perl_newSVnv
+#define newSVnv pPerl->Perl_newSVnv
#undef newSVpv
-#define newSVpv pPerl->Perl_newSVpv
+#define newSVpv pPerl->Perl_newSVpv
#undef newSVpvf
-#define newSVpvf pPerl->Perl_newSVpvf
+#define newSVpvf pPerl->Perl_newSVpvf
#undef newSVpvn
-#define newSVpvn pPerl->Perl_newSVpvn
+#define newSVpvn pPerl->Perl_newSVpvn
#undef newSVrv
-#define newSVrv pPerl->Perl_newSVrv
+#define newSVrv pPerl->Perl_newSVrv
#undef newSVsv
-#define newSVsv pPerl->Perl_newSVsv
+#define newSVsv pPerl->Perl_newSVsv
#undef newUNOP
-#define newUNOP pPerl->Perl_newUNOP
+#define newUNOP pPerl->Perl_newUNOP
#undef newWHILEOP
-#define newWHILEOP pPerl->Perl_newWHILEOP
+#define newWHILEOP pPerl->Perl_newWHILEOP
+#undef new_struct_thread
+#define new_struct_thread pPerl->Perl_new_struct_thread
#undef new_sv
-#define new_sv pPerl->new_sv
-#undef new_xiv
-#define new_xiv pPerl->new_xiv
+#define new_sv pPerl->new_sv
#undef new_xnv
-#define new_xnv pPerl->new_xnv
+#define new_xnv pPerl->new_xnv
#undef new_xpv
-#define new_xpv pPerl->new_xpv
-#undef new_xrv
-#define new_xrv pPerl->new_xrv
+#define new_xpv pPerl->new_xpv
#undef nextargv
-#define nextargv pPerl->Perl_nextargv
+#define nextargv pPerl->Perl_nextargv
#undef nextchar
-#define nextchar pPerl->nextchar
+#define nextchar pPerl->nextchar
#undef ninstr
-#define ninstr pPerl->Perl_ninstr
-#undef not_a_number
-#define not_a_number pPerl->not_a_number
+#define ninstr pPerl->Perl_ninstr
#undef no_fh_allowed
-#define no_fh_allowed pPerl->Perl_no_fh_allowed
+#define no_fh_allowed pPerl->Perl_no_fh_allowed
#undef no_op
-#define no_op pPerl->Perl_no_op
-#undef null
-#define null pPerl->null
+#define no_op pPerl->Perl_no_op
#undef package
-#define package pPerl->Perl_package
+#define package pPerl->Perl_package
+#undef pad_alloc
+#define pad_alloc pPerl->Perl_pad_alloc
#undef pad_allocmy
-#define pad_allocmy pPerl->Perl_pad_allocmy
+#define pad_allocmy pPerl->Perl_pad_allocmy
#undef pad_findmy
-#define pad_findmy pPerl->Perl_pad_findmy
+#define pad_findmy pPerl->Perl_pad_findmy
#undef op_free
-#define op_free pPerl->Perl_op_free
+#define op_free pPerl->Perl_op_free
#undef oopsCV
-#define oopsCV pPerl->Perl_oopsCV
+#define oopsCV pPerl->Perl_oopsCV
#undef oopsAV
-#define oopsAV pPerl->Perl_oopsAV
+#define oopsAV pPerl->Perl_oopsAV
#undef oopsHV
-#define oopsHV pPerl->Perl_oopsHV
+#define oopsHV pPerl->Perl_oopsHV
#undef opendir
-#define opendir pPerl->opendir
-#undef open_script
-#define open_script pPerl->open_script
+#define opendir pPerl->opendir
#undef pad_leavemy
-#define pad_leavemy pPerl->Perl_pad_leavemy
+#define pad_leavemy pPerl->Perl_pad_leavemy
#undef pad_sv
-#define pad_sv pPerl->Perl_pad_sv
+#define pad_sv pPerl->Perl_pad_sv
#undef pad_findlex
-#define pad_findlex pPerl->pad_findlex
+#define pad_findlex pPerl->pad_findlex
#undef pad_free
-#define pad_free pPerl->Perl_pad_free
+#define pad_free pPerl->Perl_pad_free
#undef pad_reset
-#define pad_reset pPerl->Perl_pad_reset
+#define pad_reset pPerl->Perl_pad_reset
#undef pad_swipe
-#define pad_swipe pPerl->Perl_pad_swipe
+#define pad_swipe pPerl->Perl_pad_swipe
#undef peep
-#define peep pPerl->Perl_peep
+#define peep pPerl->Perl_peep
#undef perl_call_argv
-#define perl_call_argv pPerl->perl_call_argv
+#define perl_call_argv pPerl->perl_call_argv
#undef perl_call_method
-#define perl_call_method pPerl->perl_call_method
+#define perl_call_method pPerl->perl_call_method
#undef perl_call_pv
-#define perl_call_pv pPerl->perl_call_pv
+#define perl_call_pv pPerl->perl_call_pv
#undef perl_call_sv
-#define perl_call_sv pPerl->perl_call_sv
+#define perl_call_sv pPerl->perl_call_sv
#undef perl_callargv
-#define perl_callargv pPerl->perl_callargv
+#define perl_callargv pPerl->perl_callargv
#undef perl_callpv
-#define perl_callpv pPerl->perl_callpv
+#define perl_callpv pPerl->perl_callpv
#undef perl_callsv
-#define perl_callsv pPerl->perl_callsv
+#define perl_callsv pPerl->perl_callsv
+#undef perl_eval_pv
+#define perl_eval_pv pPerl->perl_eval_pv
#undef perl_eval_sv
-#define perl_eval_sv pPerl->perl_eval_sv
+#define perl_eval_sv pPerl->perl_eval_sv
#undef perl_get_sv
-#define perl_get_sv pPerl->perl_get_sv
+#define perl_get_sv pPerl->perl_get_sv
#undef perl_get_av
-#define perl_get_av pPerl->perl_get_av
+#define perl_get_av pPerl->perl_get_av
#undef perl_get_hv
-#define perl_get_hv pPerl->perl_get_hv
+#define perl_get_hv pPerl->perl_get_hv
#undef perl_get_cv
-#define perl_get_cv pPerl->perl_get_cv
+#define perl_get_cv pPerl->perl_get_cv
+#undef perl_init_i18nl10n
+#define perl_init_i18nl10n pPerl->perl_init_i18nl10n
+#undef perl_init_i18nl14n
+#define perl_init_i18nl14n pPerl->perl_init_i18nl14n
+#undef perl_new_collate
+#define perl_new_collate pPerl->perl_new_collate
+#undef perl_new_ctype
+#define perl_new_ctype pPerl->perl_new_ctype
+#undef perl_new_numeric
+#define perl_new_numeric pPerl->perl_new_numeric
+#undef perl_set_numeric_local
+#define perl_set_numeric_local pPerl->perl_set_numeric_local
+#undef perl_set_numeric_standard
+#define perl_set_numeric_standard pPerl->perl_set_numeric_standard
#undef perl_require_pv
-#define perl_require_pv pPerl->perl_require_pv
+#define perl_require_pv pPerl->perl_require_pv
#undef pidgone
-#define pidgone pPerl->Perl_pidgone
+#define pidgone pPerl->Perl_pidgone
#undef pmflag
-#define pmflag pPerl->Perl_pmflag
+#define pmflag pPerl->Perl_pmflag
#undef pmruntime
-#define pmruntime pPerl->Perl_pmruntime
+#define pmruntime pPerl->Perl_pmruntime
#undef pmtrans
-#define pmtrans pPerl->Perl_pmtrans
+#define pmtrans pPerl->Perl_pmtrans
#undef pop_return
-#define pop_return pPerl->Perl_pop_return
+#define pop_return pPerl->Perl_pop_return
#undef pop_scope
-#define pop_scope pPerl->Perl_pop_scope
+#define pop_scope pPerl->Perl_pop_scope
#undef prepend_elem
-#define prepend_elem pPerl->Perl_prepend_elem
+#define prepend_elem pPerl->Perl_prepend_elem
#undef push_return
-#define push_return pPerl->Perl_push_return
+#define push_return pPerl->Perl_push_return
#undef push_scope
-#define push_scope pPerl->Perl_push_scope
+#define push_scope pPerl->Perl_push_scope
#undef pregcomp
-#define pregcomp pPerl->Perl_pregcomp
+#define pregcomp pPerl->Perl_pregcomp
#undef ref
-#define ref pPerl->Perl_ref
+#define ref pPerl->Perl_ref
#undef refkids
-#define refkids pPerl->Perl_refkids
+#define refkids pPerl->Perl_refkids
+#undef regexec_flags
+#define regexec_flags pPerl->Perl_regexec_flags
#undef pregexec
-#define pregexec pPerl->Perl_pregexec
+#define pregexec pPerl->Perl_pregexec
#undef pregfree
-#define pregfree pPerl->Perl_pregfree
-#undef reganode
-#define reganode pPerl->reganode
-#undef regatom
-#define regatom pPerl->regatom
-#undef regbranch
-#define regbranch pPerl->regbranch
-#undef regc
-#define regc pPerl->regc
-#undef regclass
-#define regclass pPerl->regclass
-#undef regcppush
-#define regcppush pPerl->regcppush
-#undef regcppop
-#define regcppop pPerl->regcppop
-#undef reginsert
-#define reginsert pPerl->reginsert
-#undef regmatch
-#define regmatch pPerl->regmatch
+#define pregfree pPerl->Perl_pregfree
#undef regnext
-#define regnext pPerl->Perl_regnext
-#undef regoptail
-#define regoptail pPerl->regoptail
-#undef regpiece
-#define regpiece pPerl->regpiece
-#undef regrepeat
-#define regrepeat pPerl->regrepeat
-#undef regset
-#define regset pPerl->regset
-#undef regtail
-#define regtail pPerl->regtail
-#undef regtry
-#define regtry pPerl->regtry
+#define regnext pPerl->Perl_regnext
+#undef regnoderegnext
+#define regnoderegnext pPerl->regnoderegnext
#undef repeatcpy
-#define repeatcpy pPerl->Perl_repeatcpy
+#define repeatcpy pPerl->Perl_repeatcpy
#undef rninstr
-#define rninstr pPerl->Perl_rninstr
+#define rninstr pPerl->Perl_rninstr
+#undef rsignal
+#define rsignal pPerl->Perl_rsignal
+#undef rsignal_restore
+#define rsignal_restore pPerl->Perl_rsignal_restore
+#undef rsignal_save
+#define rsignal_save pPerl->Perl_rsignal_save
+#undef rsignal_state
+#define rsignal_state pPerl->Perl_rsignal_state
#undef run
-#define run pPerl->Perl_run
+#define run pPerl->Perl_run
+#undef rxres_free
+#define rxres_free pPerl->Perl_rxres_free
+#undef rxres_restore
+#define rxres_restore pPerl->Perl_rxres_restore
+#undef rxres_save
+#define rxres_save pPerl->Perl_rxres_save
#undef safefree
-#define safefree pPerl->Perl_safefree
+#define safefree pPerl->Perl_safefree
#undef safecalloc
-#define safecalloc pPerl->Perl_safecalloc
+#define safecalloc pPerl->Perl_safecalloc
#undef safemalloc
-#define safemalloc pPerl->Perl_safemalloc
+#define safemalloc pPerl->Perl_safemalloc
#undef saferealloc
-#define saferealloc pPerl->Perl_saferealloc
+#define saferealloc pPerl->Perl_saferealloc
+#undef safexcalloc
+#define safexcalloc pPerl->Perl_safexcalloc
+#undef safexfree
+#define safexfree pPerl->Perl_safexfree
+#undef safexmalloc
+#define safexmalloc pPerl->Perl_safexmalloc
+#undef safexrealloc
+#define safexrealloc pPerl->Perl_safexrealloc
#undef same_dirent
-#define same_dirent pPerl->same_dirent
+#define same_dirent pPerl->Perl_same_dirent
#undef savepv
-#define savepv pPerl->Perl_savepv
+#define savepv pPerl->Perl_savepv
#undef savepvn
-#define savepvn pPerl->Perl_savepvn
+#define savepvn pPerl->Perl_savepvn
#undef savestack_grow
-#define savestack_grow pPerl->Perl_savestack_grow
+#define savestack_grow pPerl->Perl_savestack_grow
+#undef save_aelem
+#define save_aelem pPerl->Perl_save_aelem
#undef save_aptr
-#define save_aptr pPerl->Perl_save_aptr
+#define save_aptr pPerl->Perl_save_aptr
#undef save_ary
-#define save_ary pPerl->Perl_save_ary
+#define save_ary pPerl->Perl_save_ary
#undef save_clearsv
-#define save_clearsv pPerl->Perl_save_clearsv
+#define save_clearsv pPerl->Perl_save_clearsv
#undef save_delete
-#define save_delete pPerl->Perl_save_delete
+#define save_delete pPerl->Perl_save_delete
#undef save_destructor
-#define save_destructor pPerl->Perl_save_destructor
+#define save_destructor pPerl->Perl_save_destructor
#undef save_freesv
-#define save_freesv pPerl->Perl_save_freesv
+#define save_freesv pPerl->Perl_save_freesv
#undef save_freeop
-#define save_freeop pPerl->Perl_save_freeop
+#define save_freeop pPerl->Perl_save_freeop
#undef save_freepv
-#define save_freepv pPerl->Perl_save_freepv
+#define save_freepv pPerl->Perl_save_freepv
+#undef save_gp
+#define save_gp pPerl->Perl_save_gp
#undef save_hash
-#define save_hash pPerl->Perl_save_hash
+#define save_hash pPerl->Perl_save_hash
+#undef save_helem
+#define save_helem pPerl->Perl_save_helem
#undef save_hptr
-#define save_hptr pPerl->Perl_save_hptr
+#define save_hptr pPerl->Perl_save_hptr
+#undef save_I16
+#define save_I16 pPerl->Perl_save_I16
#undef save_I32
-#define save_I32 pPerl->Perl_save_I32
+#define save_I32 pPerl->Perl_save_I32
#undef save_int
-#define save_int pPerl->Perl_save_int
+#define save_int pPerl->Perl_save_int
#undef save_item
-#define save_item pPerl->Perl_save_item
+#define save_item pPerl->Perl_save_item
#undef save_iv
-#define save_iv pPerl->save_iv
-#undef save_lines
-#define save_lines pPerl->save_lines
+#define save_iv pPerl->Perl_save_iv
#undef save_list
-#define save_list pPerl->Perl_save_list
+#define save_list pPerl->Perl_save_list
#undef save_long
-#define save_long pPerl->Perl_save_long
+#define save_long pPerl->Perl_save_long
#undef save_nogv
-#define save_nogv pPerl->Perl_save_nogv
+#define save_nogv pPerl->Perl_save_nogv
+#undef save_op
+#define save_op pPerl->Perl_save_op
#undef save_scalar
-#define save_scalar pPerl->Perl_save_scalar
+#define save_scalar pPerl->Perl_save_scalar
#undef save_pptr
-#define save_pptr pPerl->Perl_save_pptr
+#define save_pptr pPerl->Perl_save_pptr
#undef save_sptr
-#define save_sptr pPerl->Perl_save_sptr
+#define save_sptr pPerl->Perl_save_sptr
#undef save_svref
-#define save_svref pPerl->Perl_save_svref
+#define save_svref pPerl->Perl_save_svref
+#undef save_threadsv
+#define save_threadsv pPerl->Perl_save_threadsv
#undef sawparens
-#define sawparens pPerl->Perl_sawparens
+#define sawparens pPerl->Perl_sawparens
#undef scalar
-#define scalar pPerl->Perl_scalar
-#undef scalarboolean
-#define scalarboolean pPerl->scalarboolean
+#define scalar pPerl->Perl_scalar
#undef scalarkids
-#define scalarkids pPerl->Perl_scalarkids
+#define scalarkids pPerl->Perl_scalarkids
#undef scalarseq
-#define scalarseq pPerl->Perl_scalarseq
+#define scalarseq pPerl->Perl_scalarseq
#undef scalarvoid
-#define scalarvoid pPerl->Perl_scalarvoid
+#define scalarvoid pPerl->Perl_scalarvoid
#undef scan_const
-#define scan_const pPerl->Perl_scan_const
+#define scan_const pPerl->Perl_scan_const
#undef scan_formline
-#define scan_formline pPerl->Perl_scan_formline
+#define scan_formline pPerl->Perl_scan_formline
#undef scan_ident
-#define scan_ident pPerl->Perl_scan_ident
+#define scan_ident pPerl->Perl_scan_ident
#undef scan_inputsymbol
-#define scan_inputsymbol pPerl->Perl_scan_inputsymbol
+#define scan_inputsymbol pPerl->Perl_scan_inputsymbol
#undef scan_heredoc
-#define scan_heredoc pPerl->Perl_scan_heredoc
+#define scan_heredoc pPerl->Perl_scan_heredoc
#undef scan_hex
-#define scan_hex pPerl->Perl_scan_hex
+#define scan_hex pPerl->Perl_scan_hex
#undef scan_num
-#define scan_num pPerl->Perl_scan_num
+#define scan_num pPerl->Perl_scan_num
#undef scan_oct
-#define scan_oct pPerl->Perl_scan_oct
+#define scan_oct pPerl->Perl_scan_oct
#undef scan_pat
-#define scan_pat pPerl->Perl_scan_pat
+#define scan_pat pPerl->Perl_scan_pat
#undef scan_str
-#define scan_str pPerl->Perl_scan_str
+#define scan_str pPerl->Perl_scan_str
#undef scan_subst
-#define scan_subst pPerl->Perl_scan_subst
+#define scan_subst pPerl->Perl_scan_subst
#undef scan_trans
-#define scan_trans pPerl->Perl_scan_trans
+#define scan_trans pPerl->Perl_scan_trans
#undef scope
-#define scope pPerl->Perl_scope
+#define scope pPerl->Perl_scope
#undef screaminstr
-#define screaminstr pPerl->Perl_screaminstr
+#define screaminstr pPerl->Perl_screaminstr
+#undef setdefout
+#define setdefout pPerl->Perl_setdefout
+#undef setenv_getix
+#define setenv_getix pPerl->Perl_setenv_getix
+#undef share_hek
+#define share_hek pPerl->Perl_share_hek
+#undef sharepvn
+#define sharepvn pPerl->Perl_sharepvn
#undef sighandler
-#define sighandler pPerl->Perl_sighandler
+#define sighandler pPerl->Perl_sighandler
#undef skipspace
-#define skipspace pPerl->Perl_skipspace
+#define skipspace pPerl->Perl_skipspace
#undef stack_grow
-#define stack_grow pPerl->Perl_stack_grow
+#define stack_grow pPerl->Perl_stack_grow
#undef start_subparse
-#define start_subparse pPerl->Perl_start_subparse
+#define start_subparse pPerl->Perl_start_subparse
+#undef sub_crush_depth
+#define sub_crush_depth pPerl->Perl_sub_crush_depth
#undef sublex_done
-#define sublex_done pPerl->Perl_sublex_done
+#define sublex_done pPerl->Perl_sublex_done
#undef sublex_start
-#define sublex_start pPerl->Perl_sublex_start
+#define sublex_start pPerl->Perl_sublex_start
#undef sv_2bool
-#define sv_2bool pPerl->Perl_sv_2bool
+#define sv_2bool pPerl->Perl_sv_2bool
#undef sv_2cv
-#define sv_2cv pPerl->Perl_sv_2cv
+#define sv_2cv pPerl->Perl_sv_2cv
#undef sv_2io
-#define sv_2io pPerl->Perl_sv_2io
+#define sv_2io pPerl->Perl_sv_2io
#undef sv_2iv
-#define sv_2iv pPerl->Perl_sv_2iv
+#define sv_2iv pPerl->Perl_sv_2iv
#undef sv_2mortal
-#define sv_2mortal pPerl->Perl_sv_2mortal
+#define sv_2mortal pPerl->Perl_sv_2mortal
#undef sv_2nv
-#define sv_2nv pPerl->Perl_sv_2nv
+#define sv_2nv pPerl->Perl_sv_2nv
#undef sv_2pv
-#define sv_2pv pPerl->Perl_sv_2pv
+#define sv_2pv pPerl->Perl_sv_2pv
#undef sv_2uv
-#define sv_2uv pPerl->Perl_sv_2uv
+#define sv_2uv pPerl->Perl_sv_2uv
#undef sv_add_arena
-#define sv_add_arena pPerl->Perl_sv_add_arena
+#define sv_add_arena pPerl->Perl_sv_add_arena
#undef sv_backoff
-#define sv_backoff pPerl->Perl_sv_backoff
+#define sv_backoff pPerl->Perl_sv_backoff
#undef sv_bless
-#define sv_bless pPerl->Perl_sv_bless
+#define sv_bless pPerl->Perl_sv_bless
#undef sv_catpv
-#define sv_catpv pPerl->Perl_sv_catpv
+#define sv_catpv pPerl->Perl_sv_catpv
#undef sv_catpvf
-#define sv_catpvf pPerl->Perl_sv_catpvf
+#define sv_catpvf pPerl->Perl_sv_catpvf
#undef sv_catpvn
-#define sv_catpvn pPerl->Perl_sv_catpvn
+#define sv_catpvn pPerl->Perl_sv_catpvn
#undef sv_catsv
-#define sv_catsv pPerl->Perl_sv_catsv
+#define sv_catsv pPerl->Perl_sv_catsv
#undef sv_chop
-#define sv_chop pPerl->Perl_sv_chop
+#define sv_chop pPerl->Perl_sv_chop
#undef sv_clean_all
-#define sv_clean_all pPerl->Perl_sv_clean_all
+#define sv_clean_all pPerl->Perl_sv_clean_all
#undef sv_clean_objs
-#define sv_clean_objs pPerl->Perl_sv_clean_objs
+#define sv_clean_objs pPerl->Perl_sv_clean_objs
#undef sv_clear
-#define sv_clear pPerl->Perl_sv_clear
+#define sv_clear pPerl->Perl_sv_clear
#undef sv_cmp
-#define sv_cmp pPerl->Perl_sv_cmp
+#define sv_cmp pPerl->Perl_sv_cmp
#undef sv_cmp_locale
-#define sv_cmp_locale pPerl->Perl_sv_cmp_locale
+#define sv_cmp_locale pPerl->Perl_sv_cmp_locale
#undef sv_collxfrm
-#define sv_collxfrm pPerl->Perl_sv_collxfrm
+#define sv_collxfrm pPerl->Perl_sv_collxfrm
#undef sv_compile_2op
-#define sv_compile_2op pPerl->Perl_sv_compile_2op
+#define sv_compile_2op pPerl->Perl_sv_compile_2op
#undef sv_dec
-#define sv_dec pPerl->Perl_sv_dec
+#define sv_dec pPerl->Perl_sv_dec
#undef sv_derived_from
-#define sv_derived_from pPerl->Perl_sv_derived_from
+#define sv_derived_from pPerl->Perl_sv_derived_from
#undef sv_dump
-#define sv_dump pPerl->Perl_sv_dump
+#define sv_dump pPerl->Perl_sv_dump
#undef sv_eq
-#define sv_eq pPerl->Perl_sv_eq
+#define sv_eq pPerl->Perl_sv_eq
#undef sv_free
-#define sv_free pPerl->Perl_sv_free
+#define sv_free pPerl->Perl_sv_free
#undef sv_free_arenas
-#define sv_free_arenas pPerl->Perl_sv_free_arenas
+#define sv_free_arenas pPerl->Perl_sv_free_arenas
#undef sv_gets
-#define sv_gets pPerl->Perl_sv_gets
+#define sv_gets pPerl->Perl_sv_gets
#undef sv_grow
-#define sv_grow pPerl->Perl_sv_grow
+#define sv_grow pPerl->Perl_sv_grow
#undef sv_inc
-#define sv_inc pPerl->Perl_sv_inc
+#define sv_inc pPerl->Perl_sv_inc
#undef sv_insert
-#define sv_insert pPerl->Perl_sv_insert
+#define sv_insert pPerl->Perl_sv_insert
#undef sv_isa
-#define sv_isa pPerl->Perl_sv_isa
+#define sv_isa pPerl->Perl_sv_isa
#undef sv_isobject
-#define sv_isobject pPerl->Perl_sv_isobject
+#define sv_isobject pPerl->Perl_sv_isobject
#undef sv_iv
-#define sv_iv pPerl->Perl_sv_iv
+#define sv_iv pPerl->Perl_sv_iv
#undef sv_len
-#define sv_len pPerl->Perl_sv_len
+#define sv_len pPerl->Perl_sv_len
#undef sv_magic
-#define sv_magic pPerl->Perl_sv_magic
+#define sv_magic pPerl->Perl_sv_magic
#undef sv_mortalcopy
-#define sv_mortalcopy pPerl->Perl_sv_mortalcopy
+#define sv_mortalcopy pPerl->Perl_sv_mortalcopy
#undef sv_newmortal
-#define sv_newmortal pPerl->Perl_sv_newmortal
+#define sv_newmortal pPerl->Perl_sv_newmortal
#undef sv_newref
-#define sv_newref pPerl->Perl_sv_newref
+#define sv_newref pPerl->Perl_sv_newref
#undef sv_nv
-#define sv_nv pPerl->Perl_sv_nv
+#define sv_nv pPerl->Perl_sv_nv
#undef sv_pvn
-#define sv_pvn pPerl->Perl_sv_pvn
+#define sv_pvn pPerl->Perl_sv_pvn
#undef sv_pvn_force
-#define sv_pvn_force pPerl->Perl_sv_pvn_force
+#define sv_pvn_force pPerl->Perl_sv_pvn_force
#undef sv_reftype
-#define sv_reftype pPerl->Perl_sv_reftype
+#define sv_reftype pPerl->Perl_sv_reftype
#undef sv_replace
-#define sv_replace pPerl->Perl_sv_replace
+#define sv_replace pPerl->Perl_sv_replace
#undef sv_report_used
-#define sv_report_used pPerl->Perl_sv_report_used
+#define sv_report_used pPerl->Perl_sv_report_used
#undef sv_reset
-#define sv_reset pPerl->Perl_sv_reset
+#define sv_reset pPerl->Perl_sv_reset
#undef sv_setiv
-#define sv_setiv pPerl->Perl_sv_setiv
+#define sv_setiv pPerl->Perl_sv_setiv
#undef sv_setnv
-#define sv_setnv pPerl->Perl_sv_setnv
+#define sv_setnv pPerl->Perl_sv_setnv
#undef sv_setpv
-#define sv_setpv pPerl->Perl_sv_setpv
+#define sv_setpv pPerl->Perl_sv_setpv
#undef sv_setpvf
-#define sv_setpvf pPerl->Perl_sv_setpvf
+#define sv_setpvf pPerl->Perl_sv_setpvf
#undef sv_setpviv
-#define sv_setpviv pPerl->Perl_sv_setpviv
+#define sv_setpviv pPerl->Perl_sv_setpviv
#undef sv_setpvn
-#define sv_setpvn pPerl->Perl_sv_setpvn
+#define sv_setpvn pPerl->Perl_sv_setpvn
#undef sv_setref_iv
-#define sv_setref_iv pPerl->Perl_sv_setref_iv
+#define sv_setref_iv pPerl->Perl_sv_setref_iv
#undef sv_setref_nv
-#define sv_setref_nv pPerl->Perl_sv_setref_nv
+#define sv_setref_nv pPerl->Perl_sv_setref_nv
#undef sv_setref_pv
-#define sv_setref_pv pPerl->Perl_sv_setref_pv
+#define sv_setref_pv pPerl->Perl_sv_setref_pv
#undef sv_setref_pvn
-#define sv_setref_pvn pPerl->Perl_sv_setref_pvn
+#define sv_setref_pvn pPerl->Perl_sv_setref_pvn
#undef sv_setsv
-#define sv_setsv pPerl->Perl_sv_setsv
+#define sv_setsv pPerl->Perl_sv_setsv
#undef sv_setuv
-#define sv_setuv pPerl->Perl_sv_setuv
+#define sv_setuv pPerl->Perl_sv_setuv
#undef sv_taint
-#define sv_taint pPerl->Perl_sv_taint
+#define sv_taint pPerl->Perl_sv_taint
#undef sv_tainted
-#define sv_tainted pPerl->Perl_sv_tainted
+#define sv_tainted pPerl->Perl_sv_tainted
#undef sv_true
-#define sv_true pPerl->Perl_sv_true
+#define sv_true pPerl->Perl_sv_true
#undef sv_unmagic
-#define sv_unmagic pPerl->Perl_sv_unmagic
+#define sv_unmagic pPerl->Perl_sv_unmagic
#undef sv_unref
-#define sv_unref pPerl->Perl_sv_unref
+#define sv_unref pPerl->Perl_sv_unref
#undef sv_untaint
-#define sv_untaint pPerl->Perl_sv_untaint
+#define sv_untaint pPerl->Perl_sv_untaint
#undef sv_upgrade
-#define sv_upgrade pPerl->Perl_sv_upgrade
+#define sv_upgrade pPerl->Perl_sv_upgrade
#undef sv_usepvn
-#define sv_usepvn pPerl->Perl_sv_usepvn
+#define sv_usepvn pPerl->Perl_sv_usepvn
#undef sv_uv
-#define sv_uv pPerl->Perl_sv_uv
+#define sv_uv pPerl->Perl_sv_uv
#undef sv_vcatpvfn
-#define sv_vcatpvfn pPerl->Perl_sv_vcatpvfn
+#define sv_vcatpvfn pPerl->Perl_sv_vcatpvfn
#undef sv_vsetpvfn
-#define sv_vsetpvfn pPerl->Perl_sv_vsetpvfn
+#define sv_vsetpvfn pPerl->Perl_sv_vsetpvfn
#undef taint_env
-#define taint_env pPerl->Perl_taint_env
+#define taint_env pPerl->Perl_taint_env
#undef taint_not
-#define taint_not pPerl->Perl_taint_not
+#define taint_not pPerl->Perl_taint_not
#undef taint_proper
-#define taint_proper pPerl->Perl_taint_proper
+#define taint_proper pPerl->Perl_taint_proper
#undef too_few_arguments
-#define too_few_arguments pPerl->Perl_too_few_arguments
+#define too_few_arguments pPerl->Perl_too_few_arguments
#undef too_many_arguments
-#define too_many_arguments pPerl->Perl_too_many_arguments
+#define too_many_arguments pPerl->Perl_too_many_arguments
+#undef unlnk
+#define unlnk pPerl->Perl_unlnk
+#undef unlock_condpair
+#define unlock_condpair pPerl->Perl_unlock_condpair
+#undef unshare_hek
+#define unshare_hek pPerl->Perl_unshare_hek
+#undef unsharepvn
+#define unsharepvn pPerl->Perl_unsharepvn
+#undef utilize
+#define utilize pPerl->Perl_utilize
+#undef vivify_defelem
+#define vivify_defelem pPerl->Perl_vivify_defelem
+#undef vivify_ref
+#define vivify_ref pPerl->Perl_vivify_ref
+#undef wait4pid
+#define wait4pid pPerl->Perl_wait4pid
#undef warn
-#define warn pPerl->Perl_warn
+#define warn pPerl->Perl_warn
+#undef whichsig
+#define whichsig pPerl->Perl_whichsig
+#undef yyerror
+#define yyerror pPerl->Perl_yyerror
+#undef yylex
+#define yylex pPerl->Perl_yylex
+#undef yyparse
+#define yyparse pPerl->Perl_yyparse
+#undef yywarn
+#define yywarn pPerl->Perl_yywarn
#undef piMem
@@ -1684,9 +1816,9 @@
#define telldir PerlDir_tell
#define putenv PerlEnv_putenv
#define getenv PerlEnv_getenv
-#define stdin PerlIO_stdin
-#define stdout PerlIO_stdout
-#define stderr PerlIO_stderr
+#define stdin PerlIO_stdin()
+#define stdout PerlIO_stdout()
+#define stderr PerlIO_stderr()
#define fopen PerlIO_open
#define fclose PerlIO_close
#define feof PerlIO_eof
diff --git a/bytecode.h b/bytecode.h
index e86c146505..92c124dc06 100644
--- a/bytecode.h
+++ b/bytecode.h
@@ -108,11 +108,13 @@ EXT I32 obj_list_fill INIT(-1);
arg = atof(str); \
} STMT_END
-#define BGET_objindex(arg) STMT_START { \
- U32 ix; \
- BGET_U32(ix); \
- arg = obj_list[ix]; \
+#define BGET_objindex(arg, type) STMT_START { \
+ U32 ix; \
+ BGET_U32(ix); \
+ arg = (type)obj_list[ix]; \
} STMT_END
+#define BGET_svindex(arg) BGET_objindex(arg, svindex)
+#define BGET_opindex(arg) BGET_objindex(arg, opindex)
#define BSET_ldspecsv(sv, arg) sv = specialsv_list[arg]
diff --git a/byterun.c b/byterun.c
index c99fa0850e..e77d3a3e16 100644
--- a/byterun.c
+++ b/byterun.c
@@ -55,14 +55,14 @@ void byterun(PerlIO *fp)
case INSN_LDSV: /* 1 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
sv = arg;
break;
}
case INSN_LDOP: /* 2 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
op = arg;
break;
}
@@ -157,7 +157,7 @@ void byterun(PerlIO *fp)
case INSN_XRV: /* 17 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
SvRV(sv) = arg;
break;
}
@@ -204,7 +204,7 @@ void byterun(PerlIO *fp)
case INSN_XLV_TARG: /* 24 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
LvTARG(sv) = arg;
break;
}
@@ -281,7 +281,7 @@ void byterun(PerlIO *fp)
case INSN_XIO_TOP_GV: /* 36 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&IoTOP_GV(sv) = arg;
break;
}
@@ -295,7 +295,7 @@ void byterun(PerlIO *fp)
case INSN_XIO_FMT_GV: /* 38 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&IoFMT_GV(sv) = arg;
break;
}
@@ -309,7 +309,7 @@ void byterun(PerlIO *fp)
case INSN_XIO_BOTTOM_GV: /* 40 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&IoBOTTOM_GV(sv) = arg;
break;
}
@@ -337,35 +337,35 @@ void byterun(PerlIO *fp)
case INSN_XCV_STASH: /* 44 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&CvSTASH(sv) = arg;
break;
}
case INSN_XCV_START: /* 45 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
CvSTART(sv) = arg;
break;
}
case INSN_XCV_ROOT: /* 46 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
CvROOT(sv) = arg;
break;
}
case INSN_XCV_GV: /* 47 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&CvGV(sv) = arg;
break;
}
case INSN_XCV_FILEGV: /* 48 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&CvFILEGV(sv) = arg;
break;
}
@@ -379,14 +379,14 @@ void byterun(PerlIO *fp)
case INSN_XCV_PADLIST: /* 50 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&CvPADLIST(sv) = arg;
break;
}
case INSN_XCV_OUTSIDE: /* 51 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&CvOUTSIDE(sv) = arg;
break;
}
@@ -407,7 +407,7 @@ void byterun(PerlIO *fp)
case INSN_AV_PUSH: /* 54 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
BSET_av_push(sv, arg);
break;
}
@@ -449,7 +449,7 @@ void byterun(PerlIO *fp)
case INSN_HV_STORE: /* 60 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
BSET_hv_store(sv, arg);
break;
}
@@ -463,7 +463,7 @@ void byterun(PerlIO *fp)
case INSN_MG_OBJ: /* 62 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
SvMAGIC(sv)->mg_obj = arg;
break;
}
@@ -491,7 +491,7 @@ void byterun(PerlIO *fp)
case INSN_XMG_STASH: /* 66 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&SvSTASH(sv) = arg;
break;
}
@@ -512,7 +512,7 @@ void byterun(PerlIO *fp)
case INSN_GP_SV: /* 69 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
GvSV(sv) = arg;
break;
}
@@ -533,42 +533,42 @@ void byterun(PerlIO *fp)
case INSN_GP_AV: /* 72 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&GvAV(sv) = arg;
break;
}
case INSN_GP_HV: /* 73 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&GvHV(sv) = arg;
break;
}
case INSN_GP_CV: /* 74 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&GvCV(sv) = arg;
break;
}
case INSN_GP_FILEGV: /* 75 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&GvFILEGV(sv) = arg;
break;
}
case INSN_GP_IO: /* 76 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&GvIOp(sv) = arg;
break;
}
case INSN_GP_FORM: /* 77 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&GvFORM(sv) = arg;
break;
}
@@ -589,7 +589,7 @@ void byterun(PerlIO *fp)
case INSN_GP_SHARE: /* 80 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
BSET_gp_share(sv, arg);
break;
}
@@ -603,14 +603,14 @@ void byterun(PerlIO *fp)
case INSN_OP_NEXT: /* 82 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
op->op_next = arg;
break;
}
case INSN_OP_SIBLING: /* 83 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
op->op_sibling = arg;
break;
}
@@ -659,35 +659,35 @@ void byterun(PerlIO *fp)
case INSN_OP_FIRST: /* 90 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cUNOP->op_first = arg;
break;
}
case INSN_OP_LAST: /* 91 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cBINOP->op_last = arg;
break;
}
case INSN_OP_OTHER: /* 92 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cLOGOP->op_other = arg;
break;
}
case INSN_OP_TRUE: /* 93 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cCONDOP->op_true = arg;
break;
}
case INSN_OP_FALSE: /* 94 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cCONDOP->op_false = arg;
break;
}
@@ -701,28 +701,28 @@ void byterun(PerlIO *fp)
case INSN_OP_PMREPLROOT: /* 96 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cPMOP->op_pmreplroot = arg;
break;
}
case INSN_OP_PMREPLROOTGV: /* 97 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&cPMOP->op_pmreplroot = arg;
break;
}
case INSN_OP_PMREPLSTART: /* 98 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cPMOP->op_pmreplstart = arg;
break;
}
case INSN_OP_PMNEXT: /* 99 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
*(OP**)&cPMOP->op_pmnext = arg;
break;
}
@@ -750,14 +750,14 @@ void byterun(PerlIO *fp)
case INSN_OP_SV: /* 103 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
cSVOP->op_sv = arg;
break;
}
case INSN_OP_GV: /* 104 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&cGVOP->op_gv = arg;
break;
}
@@ -778,21 +778,21 @@ void byterun(PerlIO *fp)
case INSN_OP_REDOOP: /* 107 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cLOOP->op_redoop = arg;
break;
}
case INSN_OP_NEXTOP: /* 108 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cLOOP->op_nextop = arg;
break;
}
case INSN_OP_LASTOP: /* 109 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
cLOOP->op_lastop = arg;
break;
}
@@ -806,14 +806,14 @@ void byterun(PerlIO *fp)
case INSN_COP_STASH: /* 111 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&cCOP->cop_stash = arg;
break;
}
case INSN_COP_FILEGV: /* 112 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
*(SV**)&cCOP->cop_filegv = arg;
break;
}
@@ -841,21 +841,21 @@ void byterun(PerlIO *fp)
case INSN_MAIN_START: /* 116 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
main_start = arg;
break;
}
case INSN_MAIN_ROOT: /* 117 */
{
opindex arg;
- BGET_objindex(arg);
+ BGET_opindex(arg);
main_root = arg;
break;
}
case INSN_CURPAD: /* 118 */
{
svindex arg;
- BGET_objindex(arg);
+ BGET_svindex(arg);
BSET_curpad(curpad, arg);
break;
}
diff --git a/doio.c b/doio.c
index d8ce25d186..4e263e1665 100644
--- a/doio.c
+++ b/doio.c
@@ -503,7 +503,7 @@ nextargv(register GV *gv)
(void)fchown(lastfd,fileuid,filegid);
#else
#ifdef HAS_CHOWN
- (void)chown(oldname,fileuid,filegid);
+ (void)PerlLIO_chown(oldname,fileuid,filegid);
#endif
#endif
}
@@ -1065,7 +1065,7 @@ apply(I32 type, register SV **mark, register SV **sp)
val2 = SvIVx(*++mark);
tot = sp - mark;
while (++mark <= sp) {
- if (chown(SvPVx(*mark, na),val,val2))
+ if (PerlLIO_chown(SvPVx(*mark, na),val,val2))
tot--;
}
}
diff --git a/iplio.h b/iplio.h
index 9a6646d3f1..0c5455f116 100644
--- a/iplio.h
+++ b/iplio.h
@@ -13,6 +13,7 @@ class IPerlLIO
public:
virtual int Access(const char *path, int mode, int &err) = 0;
virtual int Chmod(const char *filename, int pmode, int &err) = 0;
+ virtual int Chown(const char *filename, uid_t owner, gid_t group, int &err) = 0;
virtual int Chsize(int handle, long size, int &err) = 0;
virtual int Close(int handle, int &err) = 0;
virtual int Dup(int handle, int &err) = 0;
diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm
index 888e5396dc..e5c4786e0c 100644
--- a/lib/ExtUtils/MM_Unix.pm
+++ b/lib/ExtUtils/MM_Unix.pm
@@ -212,6 +212,7 @@ sub ExtUtils::MM_Unix::pm_to_blib ;
sub ExtUtils::MM_Unix::post_constants ;
sub ExtUtils::MM_Unix::post_initialize ;
sub ExtUtils::MM_Unix::postamble ;
+sub ExtUtils::MM_Unix::ppd ;
sub ExtUtils::MM_Unix::prefixify ;
sub ExtUtils::MM_Unix::processPL ;
sub ExtUtils::MM_Unix::realclean ;
@@ -2565,6 +2566,45 @@ sub parse_version {
return $result;
}
+=item parse_abstract
+
+parse a file and return what you think is the ABSTRACT
+
+=cut
+
+sub parse_abstract {
+ my($self,$parsefile) = @_;
+ my $result;
+ local *FH;
+ local $/ = "\n";
+ open(FH,$parsefile) or die "Could not open '$parsefile': $!";
+ my $inpod = 0;
+ my $package = $self->{DISTNAME};
+ $package =~ s/-/::/;
+ while (<FH>) {
+ $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;
+ next if !$inpod;
+ chop;
+ next unless /^($package\s-\s)(.*)/;
+ $result = $2;
+# my $eval = qq{
+# package ExtUtils::MakeMaker::_version;
+# no strict;
+#
+# local $1$2;
+# \$$2=undef; do {
+# $_
+# }; \$$2
+# };
+# local($^W) = 0;
+# $result = eval($eval);
+# die "Could not eval '$eval' in $parsefile: $@" if $@;
+# $result = "undef" unless defined $result;
+ last;
+ }
+ close FH;
+ return $result;
+}
=item pasthru (o)
@@ -2664,6 +2704,46 @@ $(OBJECT) : $(PERL_HDRS)
join "\n", @m;
}
+=item ppd
+
+Defines target that creates a PPD (Perl Package Description) file
+for a binary distribution.
+
+=cut
+
+sub ppd {
+ my($self) = @_;
+ my(@m);
+ if ($self->{ABSTRACT_FROM}){
+ $self->{ABSTRACT} = $self->parse_abstract($self->{ABSTRACT_FROM}) or
+ Carp::carp "WARNING: Setting ABSTRACT via file '$self->{ABSTRACT_FROM}' failed\n"
+ }
+ my ($pack_ver) = join ",", (split (/\./, $self->{VERSION}), (0) x 4) [0 .. 3];
+ push(@m, "# Creates a PPD (Perl Package Description) for a binary distribution.\n");
+ push(@m, "ppd:\n");
+ push(@m, "\t\@\$(PERL) -e \"print qq{<SOFTPKG NAME=\\\"$self->{DISTNAME}\\\" VERSION=\\\"$pack_ver\\\">\\n}");
+ push(@m, ". qq{\\t<TITLE>$self->{DISTNAME}</TITLE>\\n}");
+ push(@m, ". qq{\\t<ABSTRACT>$self->{ABSTRACT}</ABSTRACT>\\n}");
+ my ($author) = $self->{AUTHOR};
+ $author =~ s/@/\\@/g;
+ push(@m, ". qq{\\t<AUTHOR>$author</AUTHOR>\\n}");
+ push(@m, ". qq{\\t<IMPLEMENTATION>\\n}");
+ my ($prereq);
+ foreach $prereq (sort keys %{$self->{PREREQ_PM}}) {
+ my $pre_req = $prereq;
+ $pre_req =~ s/::/-/g;
+ push(@m, ". qq{\\t\\t<DEPENDENCY NAME=\\\"$pre_req\\\" />\\n}");
+ }
+ push(@m, ". qq{\\t\\t<OS NAME=\\\"\$(OSNAME)\\\" />\\n}");
+ my ($bin_location) = $self->{BINARY_LOCATION};
+ $bin_location =~ s/\\/\\\\/g;
+ push(@m, ". qq{\\t\\t<CODEBASE HREF=\\\"$bin_location\\\" />\\n}");
+ push(@m, ". qq{\\t</IMPLEMENTATION>\\n}");
+ push(@m, ". qq{</SOFTPKG>\\n}\" > $self->{DISTNAME}.ppd");
+
+ join("", @m);
+}
+
=item pm_to_blib
Defines target that copies all files in the hash PM to their
diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm
index f3b843f6f2..c86486ac1a 100644
--- a/lib/ExtUtils/MakeMaker.pm
+++ b/lib/ExtUtils/MakeMaker.pm
@@ -235,6 +235,7 @@ sub full_setup {
@Attrib_help = qw/
+ AUTHOR ABSTRACT ABSTRACT_FROM BINARY_LOCATION LICENSE_HREF
C CCFLAGS CONFIG CONFIGURE DEFINE DIR DISTNAME DL_FUNCS DL_VARS
EXE_FILES EXCLUDE_EXT INCLUDE_EXT NO_VC FIRST_MAKEFILE FULLPERL H
INC INSTALLARCHLIB INSTALLBIN INSTALLDIRS INSTALLMAN1DIR
@@ -278,7 +279,7 @@ sub full_setup {
c_o xs_c xs_o top_targets linkext dlsyms dynamic dynamic_bs
dynamic_lib static static_lib manifypods processPL installbin subdirs
clean realclean dist_basics dist_core dist_dir dist_test dist_ci
- install force perldepend makefile staticmake test
+ install force perldepend makefile staticmake test ppd
); # loses section ordering
@@ -307,7 +308,7 @@ sub full_setup {
@Get_from_Config =
qw(
ar cc cccdlflags ccdlflags dlext dlsrc ld lddlflags ldflags libc
- lib_ext obj_ext ranlib sitelibexp sitearchexp so exe_ext
+ lib_ext obj_ext osname osvers ranlib sitelibexp sitearchexp so exe_ext
);
my $item;
@@ -381,8 +382,9 @@ sub ExtUtils::MakeMaker::new {
eval $eval;
if ($@){
warn "Warning: prerequisite $prereq $self->{PREREQ_PM}->{$prereq} not found";
- } else {
- delete $self->{PREREQ_PM}{$prereq};
+# mjn
+# } else {
+# delete $self->{PREREQ_PM}{$prereq};
}
}
# if (@unsatisfied){
diff --git a/lib/ExtUtils/Mksymlists.pm b/lib/ExtUtils/Mksymlists.pm
index 6bd49f2b73..2f2366a1c8 100644
--- a/lib/ExtUtils/Mksymlists.pm
+++ b/lib/ExtUtils/Mksymlists.pm
@@ -109,8 +109,10 @@ sub _write_win32 {
# put library name in quotes (it could be a keyword, like 'Alias')
if ($Config::Config{'cc'} !~ /^gcc/i) {
print DEF "LIBRARY \"$data->{DLBASE}\"\n";
- print DEF "CODE LOADONCALL\n";
- print DEF "DATA LOADONCALL NONSHARED MULTIPLE\n";
+ if ($Config{'ccflags'} !~ /PERL_OBJECT/i) {
+ print DEF "CODE LOADONCALL\n";
+ print DEF "DATA LOADONCALL NONSHARED MULTIPLE\n";
+ }
}
print DEF "EXPORTS\n ";
my @syms;
diff --git a/lib/ExtUtils/xsubpp b/lib/ExtUtils/xsubpp
index b8ec042b41..58b3a08705 100755
--- a/lib/ExtUtils/xsubpp
+++ b/lib/ExtUtils/xsubpp
@@ -83,6 +83,8 @@ require 5.002;
use Cwd;
use vars '$cplusplus';
+use Config;
+
sub Q ;
# Global Constants
@@ -103,6 +105,8 @@ $FH = 'File0000' ;
$usage = "Usage: xsubpp [-v] [-C++] [-except] [-prototypes] [-noversioncheck] [-nolinenumbers] [-s pattern] [-typemap typemap]... file.xs\n";
$proto_re = "[" . quotemeta('\$%&*@;') . "]" ;
+# mjn
+$OBJ = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
$except = "";
$WantPrototypes = -1 ;
@@ -714,6 +718,10 @@ print("#line 1 \"$filename\"\n")
while (<$FH>) {
last if ($Module, $Package, $Prefix) =
/^MODULE\s*=\s*([\w:]+)(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/;
+
+ if ($OBJ) {
+ s/#if(?:def|\s+defined)\s+(\(__cplusplus\)|__cplusplus)/#if defined(__cplusplus) && !defined(PERL_OBJECT)/;
+ }
print $_;
}
&Exit unless defined $_;
diff --git a/objpp.h b/objpp.h
index 61f7f1962f..b2dc52cd90 100644
--- a/objpp.h
+++ b/objpp.h
@@ -85,6 +85,10 @@
#define block_gimme CPerlObj::Perl_block_gimme
#undef block_start
#define block_start CPerlObj::Perl_block_start
+#undef bset_obj_store
+#define bset_obj_store CPerlObj::Perl_bset_obj_store
+#undef byterun
+#define byterun CPerlObj::Perl_byterun
#undef call_list
#define call_list CPerlObj::Perl_call_list
#undef cando
@@ -809,6 +813,8 @@
#define newUNOP CPerlObj::Perl_newUNOP
#undef newWHILEOP
#define newWHILEOP CPerlObj::Perl_newWHILEOP
+#undef new_logop
+#define new_logop CPerlObj::new_logop
#undef new_sv
#define new_sv CPerlObj::new_sv
#undef new_xiv
@@ -1047,6 +1053,8 @@
#define savepvn CPerlObj::Perl_savepvn
#undef savestack_grow
#define savestack_grow CPerlObj::Perl_savestack_grow
+#undef save_aelem
+#define save_aelem CPerlObj::Perl_save_aelem
#undef save_aptr
#define save_aptr CPerlObj::Perl_save_aptr
#undef save_ary
@@ -1069,6 +1077,8 @@
#define save_hash CPerlObj::Perl_save_hash
#undef save_hek
#define save_hek CPerlObj::save_hek
+#undef save_helem
+#define save_helem CPerlObj::Perl_save_helem
#undef save_hptr
#define save_hptr CPerlObj::Perl_save_hptr
#undef save_I16
diff --git a/perl.c b/perl.c
index ff381a8297..c4f1bcc6ea 100644
--- a/perl.c
+++ b/perl.c
@@ -78,13 +78,22 @@ static void init_postdump_symbols _((int, char **, char **));
static void init_predump_symbols _((void));
static void my_exit_jump _((void)) __attribute__((noreturn));
static void nuke_stacks _((void));
-static void open_script _((char *, bool, SV *));
+static void open_script _((char *, bool, SV *, int *fd));
static void usage _((char *));
-static void validate_suid _((char *, char*));
+static void validate_suid _((char *, char*, int));
#endif
-static int fdscript = -1;
+#ifdef PERL_OBJECT
+CPerlObj* perl_alloc(IPerlMem* ipM, IPerlEnv* ipE, IPerlStdIO* ipStd,
+ IPerlLIO* ipLIO, IPerlDir* ipD, IPerlSock* ipS, IPerlProc* ipP)
+{
+ CPerlObj* pPerl = new(ipM) CPerlObj(ipM, ipE, ipStd, ipLIO, ipD, ipS, ipP);
+ if(pPerl != NULL)
+ pPerl->Init();
+ return pPerl;
+}
+#else
PerlInterpreter *
perl_alloc(void)
{
@@ -94,7 +103,7 @@ perl_alloc(void)
New(53, sv_interp, 1, PerlInterpreter);
return sv_interp;
}
-#endif
+#endif /* PERL_OBJECT */
void
#ifdef PERL_OBJECT
@@ -593,6 +602,7 @@ perl_parse(PerlInterpreter *sv_interp, void (*xsinit) (void), int argc, char **a
AV* comppadlist;
dJMPENV;
int ret;
+ int fdscript = -1;
#ifdef SETUID_SCRIPTS_ARE_SECURE_NOW
#ifdef IAMSUID
@@ -885,9 +895,9 @@ print \" \\@INC:\\n @INC\\n\";");
init_perllib();
- open_script(scriptname,dosearch,sv);
+ open_script(scriptname,dosearch,sv,&fdscript);
- validate_suid(validarg, scriptname);
+ validate_suid(validarg, scriptname,fdscript);
if (doextract)
find_beginning();
@@ -1797,7 +1807,7 @@ init_main_stash(void)
}
STATIC void
-open_script(char *scriptname, bool dosearch, SV *sv)
+open_script(char *scriptname, bool dosearch, SV *sv, int *fdscript)
{
dTHR;
char *xfound = Nullch;
@@ -1998,20 +2008,20 @@ open_script(char *scriptname, bool dosearch, SV *sv)
if (strnEQ(scriptname, "/dev/fd/", 8) && isDIGIT(scriptname[8]) ) {
char *s = scriptname + 8;
- fdscript = atoi(s);
+ *fdscript = atoi(s);
while (isDIGIT(*s))
s++;
if (*s)
scriptname = s + 1;
}
else
- fdscript = -1;
+ *fdscript = -1;
origfilename = savepv(e_tmpname ? "-e" : scriptname);
curcop->cop_filegv = gv_fetchfile(origfilename);
if (strEQ(origfilename,"-"))
scriptname = "";
- if (fdscript >= 0) {
- rsfp = PerlIO_fdopen(fdscript,PERL_SCRIPT_MODE);
+ if (*fdscript >= 0) {
+ rsfp = PerlIO_fdopen(*fdscript,PERL_SCRIPT_MODE);
#if defined(HAS_FCNTL) && defined(F_SETFD)
if (rsfp)
fcntl(PerlIO_fileno(rsfp),F_SETFD,1); /* ensure close-on-exec */
@@ -2121,7 +2131,7 @@ sed %s -e \"/^[^#]/b\" \
}
STATIC void
-validate_suid(char *validarg, char *scriptname)
+validate_suid(char *validarg, char *scriptname, int fdscript)
{
int which;
diff --git a/perllio.h b/perllio.h
index 283e6ce5e2..f045655419 100644
--- a/perllio.h
+++ b/perllio.h
@@ -7,6 +7,7 @@
#define PerlLIO_access(file, mode) piLIO->Access((file), (mode), ErrorNo())
#define PerlLIO_chmod(file, mode) piLIO->Chmod((file), (mode), ErrorNo())
+#define PerlLIO_chown(file, owner, group) piLIO->Chown((file), (owner), (group), ErrorNo())
#define PerlLIO_chsize(fd, size) piLIO->Chsize((fd), (size), ErrorNo())
#define PerlLIO_close(fd) piLIO->Close((fd), ErrorNo())
#define PerlLIO_dup(fd) piLIO->Dup((fd), ErrorNo())
@@ -32,6 +33,7 @@
#else
#define PerlLIO_access(file, mode) access((file), (mode))
#define PerlLIO_chmod(file, mode) chmod((file), (mode))
+#define PerlLIO_chown(file, owner, group) chown((file), (owner), (group))
#define PerlLIO_chsize(fd, size) chsize((fd), (size))
#define PerlLIO_close(fd) close((fd))
#define PerlLIO_dup(fd) dup((fd))
diff --git a/proto.h b/proto.h
index 0960ce5fd1..2384f7fcb3 100644
--- a/proto.h
+++ b/proto.h
@@ -796,9 +796,9 @@ void init_postdump_symbols _((int, char **, char **));
void init_predump_symbols _((void));
void my_exit_jump _((void)) __attribute__((noreturn));
void nuke_stacks _((void));
-void open_script _((char *, bool, SV *));
+void open_script _((char *, bool, SV *, int *fd));
void usage _((char *));
-void validate_suid _((char *, char*));
+void validate_suid _((char *, char*, int));
regnode *reg _((I32, I32 *));
regnode *reganode _((U8, U32));
@@ -836,8 +836,16 @@ void del_sv _((SV *p));
void debprof _((OP *o));
#endif
-#define PPDEF(s) OP* CPerlObj::s _((ARGSproto));
+void *bset_obj_store _((void *obj, I32 ix));
+#ifdef INDIRECT_BGET_MACROS
+void byterun _((struct bytestream bs));
+#else
+void byterun _((PerlIO *fp));
+#endif /* INDIRECT_BGET_MACROS */
+OP *new_logop _((I32 type, I32 flags, OP **firstp, OP **otherp));
+
+#define PPDEF(s) OP* CPerlObj::s _((ARGSproto));
public:
PPDEF(pp_aassign)
PPDEF(pp_abs)
diff --git a/regcomp.c b/regcomp.c
index 14a6e46eb5..aba1f9af62 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -2610,7 +2610,7 @@ regnext(register regnode *p)
}
#ifdef I_STDARG
-static void
+STATIC void
re_croak2(const char* pat1,const char* pat2,...)
#else
/*VARARGS0*/
diff --git a/win32/Makefile b/win32/Makefile
index 9acbb5493a..7dd49ab2c4 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -1,11 +1,12 @@
-#
+#
# Makefile to build perl on Windowns NT using Microsoft NMAKE.
-#
+# Works with MS command line compilers from VC++ etc.
#
# This is set up to build a perl.exe that runs off a shared library
# (perl.dll). Also makes individual DLLs for the XS extensions.
-#
-
+# NB: Miniperl has a different set of objects it depends on than
+# perl.exe
+# Also, Miniperl will not build with -DPERL_OBJECT defined
#
# Set these to wherever you want "nmake install" to put your
# newly built perl.
@@ -26,7 +27,7 @@ OBJECT=-DPERL_OBJECT
#
# uncomment next line if you want debug version of perl (big,slow)
-CFG=Debug
+#CFG=Debug
#
# if you have the source for des_fcrypt(), uncomment this and make sure the
@@ -43,7 +44,7 @@ CFG=Debug
# WARNING: Turning this on/off WILL break binary compatibility with extensions
# you may have compiled with/without it. Be prepared to recompile all extensions
# if you change the default.
-PERL_MALLOC = define
+#PERL_MALLOC = define
#
# set the install locations of the compiler include/libraries
@@ -66,7 +67,7 @@ D_CRYPT=define
CRYPT_FLAG=-DHAVE_DES_FCRYPT
!ENDIF
-!IF "$(PERL_MALLOC)" == ""
+!IF "$OBJECT)" != "" || "$(PERL_MALLOC)" == ""
PERL_MALLOC = undef
!ENDIF
@@ -108,7 +109,7 @@ RUNTIME = -MT
RUNTIME = -MD
! ENDIF
!ENDIF
-INCLUDES = -I.\include -I. -I..
+INCLUDES = -I..\lib\CORE
#PCHFLAGS = -Fp"$(INTDIR)/modules.pch" -YX
DEFINES = -DWIN32 -D_CONSOLE $(BUILDOPT) $(CRYPT_FLAG)
LOCDEFS = -DPERLDLL -DPERL_CORE
@@ -138,26 +139,16 @@ OPTIMIZE = -O1 -TP $(RUNTIME) -DNDEBUG
LINK_DBG = -release
!ENDIF
-# we don't add LIBC here, the compiler do it based on -MD/-MT
+# we don't add LIBC here, the compiler does it based on -MD/-MT
LIBFILES = $(CRYPT_LIB) oldnames.lib kernel32.lib user32.lib gdi32.lib \
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib \
oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \
version.lib odbc32.lib odbccp32.lib
-CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(OBJECTDEF) $(LOCDEFS) $(PCHFLAGS) $(OPTIMIZE)
-
+CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(OBJECT) $(LOCDEFS) $(PCHFLAGS) $(OPTIMIZE)
-!IF "$(OBJECT)" == "-DPERL_OBJECT"
-DMYMALLOC = undef
-!ELSE
-DMYMALLOC = define
-!ENDIF
+CFLAGSMINI = -nologo -Gf -W3 -I.\include -I. -I.. $(DEFINES) $(LOCDEFS) $(PCHFLAGS) $(OPTIMIZE)
-!IF "$(OBJECTDEF)" == "-DPERL_OBJECT"
-MINI_SRC =
-!ELSE
-MINI_SRC = ..\perlio.c
-!ENDIF
LINK_FLAGS = -nologo $(LINK_DBG) -machine:$(PROCESSOR_ARCHITECTURE)
OBJOUT_FLAG = -Fo
EXEOUT_FLAG = -Fe
@@ -166,7 +157,6 @@ EXEOUT_FLAG = -Fe
############# NO USER-SERVICEABLE PARTS BEYOND THIS POINT ##############
o = .obj
-
#
# Rules
#
@@ -174,7 +164,7 @@ o = .obj
.SUFFIXES : .c $(o) .dll .lib .exe
.c$(o):
- $(CC) -c -I$(<D) $(CFLAGS) $(OBJOUT_FLAG)$@ $<
+ $(CC) -c $(CFLAGS) $(OBJOUT_FLAG)$@ $<
$(o).dll:
$(LINK32) -dll -subsystem:windows -implib:$(*B).lib -def:$(*B).def \
@@ -202,10 +192,8 @@ PERLDLL=..\perlcore.dll
PERLIMPLIB=..\perl.lib
PERLDLL=..\perl.dll
!ENDIF
-!IF "$(OBJECTDEF)" != "-DPERL_OBJECT"
MINIPERL=..\miniperl.exe
-!ENDIF
-MINIPERLEXE=..\miniperl.exe
+MINIDIR=.\mini
PERLEXE=..\perl.exe
GLOBEXE=..\perlglob.exe
CONFIGPM=..\lib\Config.pm
@@ -224,23 +212,22 @@ RCOPY=xcopy /f /r /i /e /d
NOOP=@echo
NULL=
-!IF "$(CRYPT_SRC)" != ""
-CRYPT_OBJ=$(CRYPT_SRC:.c=.obj)
-!ENDIF
+EXTRA_C = $(EXTRA_C) $(CRYPT_SRC)
!IF "$(PERL_MALLOC)" == "define"
-MALLOC_SRC = ..\malloc.c
-MALLOC_OBJ = ..\malloc$(o)
+EXTRA_C = $(EXTRA_C) ..\malloc.c
!ENDIF
-!IF "$(MINI_SRC)" != ""
-MINI_OBJ=..\perlio$(o)
+!IF "$(OBJECT)" == ""
+EXTRA_C = $(EXTRA_C) ..\perlio.c
!ENDIF
+EXTRA_OBJ = $(EXTRA_SRC:.c=.obj)
+
#
# filenames given to xsubpp must have forward slashes (since it puts
# full pathnames in #line strings)
-XSUBPP=..\$(MINIPERLEXE) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp -C++ -prototypes
+XSUBPP=..\$(MINIPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp -C++ -prototypes
CORE_C= ..\av.c \
..\byterun.c \
@@ -268,9 +255,8 @@ CORE_C= ..\av.c \
..\toke.c \
..\universal.c \
..\util.c \
- $(MALLOC_SRC) \
- $(MINI_SRC) \
- $(CRYPT_SRC)
+ $(EXTRA_SRC)
+
CORE_OBJ= ..\av$(o) \
..\byterun$(o) \
@@ -298,22 +284,54 @@ CORE_OBJ= ..\av$(o) \
..\toke$(o) \
..\universal$(o)\
..\util$(o) \
- $(MALLOC_OBJ) \
- $(MINI_OBJ) \
- $(CRYPT_OBJ)
+ $(EXTRA_OBJ)
+
+MINI_OBJ= $(MINIDIR)\av$(o) \
+ $(MINIDIR)\byterun$(o) \
+ $(MINIDIR)\miniperlmain$(o) \
+ $(MINIDIR)\deb$(o) \
+ $(MINIDIR)\doio$(o) \
+ $(MINIDIR)\doop$(o) \
+ $(MINIDIR)\dump$(o) \
+ $(MINIDIR)\globals$(o) \
+ $(MINIDIR)\gv$(o) \
+ $(MINIDIR)\hv$(o) \
+ $(MINIDIR)\mg$(o) \
+ $(MINIDIR)\op$(o) \
+ $(MINIDIR)\perl$(o) \
+ $(MINIDIR)\perly$(o) \
+ $(MINIDIR)\pp$(o) \
+ $(MINIDIR)\pp_ctl$(o) \
+ $(MINIDIR)\pp_hot$(o) \
+ $(MINIDIR)\pp_sys$(o) \
+ $(MINIDIR)\regcomp$(o) \
+ $(MINIDIR)\regexec$(o) \
+ $(MINIDIR)\run$(o) \
+ $(MINIDIR)\scope$(o) \
+ $(MINIDIR)\sv$(o) \
+ $(MINIDIR)\taint$(o) \
+ $(MINIDIR)\toke$(o) \
+ $(MINIDIR)\universal$(o)\
+ $(MINIDIR)\util$(o) \
+ $(MINIDIR)\malloc$(o) \
+ $(MINIDIR)\perlio$(o) \
+
+MINIWIN=$(MINIDIR)\win32$(o) \
+ $(MINIDIR)\win32sck$(o) \
+ $(MINIDIR)\win32thread$(o)
WIN32_C = perllib.c \
win32.c \
win32sck.c \
win32thread.c
-!IF "$(USE_THREADS)" == "" && "$(OBJECT)" == "-DPERL_OBJECT"
+!IF "$(USE_THREADS)" == "undef" && "$(OBJECT)" == "-DPERL_OBJECT"
WIN32_OBJ = win32$(o) \
win32sck$(o) \
!ELSE
WIN32_OBJ = win32$(o) \
win32sck$(o) \
- win32thread$(o)
+ win32thread$(o)
!ENDIF
PERL95_OBJ = perl95$(o) \
@@ -401,40 +419,39 @@ DYNALOADMODULES= \
$(OPCODE_DLL) \
$(SDBM_FILE_DLL)\
$(IO_DLL) \
- $(ATTRS_DLL) \
- $(THREAD_DLL) \
- $(B_DLL)
+ $(ATTRS_DLL)
+# $(THREAD_DLL) \
+# $(B_DLL)
POD2HTML=$(PODDIR)\pod2html
POD2MAN=$(PODDIR)\pod2man
POD2LATEX=$(PODDIR)\pod2latex
POD2TEXT=$(PODDIR)\pod2text
-CFG_VARS= "INST_DRV=$(INST_DRV)" \
- "INST_TOP=$(INST_TOP)" \
- "archname=$(ARCHNAME)" \
- "cc=$(CC)" \
- "ccflags=$(OPTIMIZE) $(DEFINES)" \
- "cf_email=$(EMAIL)" \
- "d_crypt=$(D_CRYPT)" \
- "d_mymalloc=$(PERL_MALLOC)" \
- "libs=$(LIBFILES)" \
- "incpath=$(CCINCDIR)" \
- "libpth=$(CCLIBDIR)" \
- "libc=$(LIBC)" \
- "static_ext=$(STATIC_EXT)" \
- "dynamic_ext=$(DYNAMIC_EXT)" \
- "usethreads=$(USE_THREADS)" \
- "LINK_FLAGS=$(LINK_FLAGS)" \
+CFG_VARS= "INST_DRV=$(INST_DRV)" \
+ "INST_TOP=$(INST_TOP)" \
+ "archname=$(ARCHNAME)" \
+ "cc=$(CC)" \
+ "ccflags=$(OPTIMIZE) $(DEFINES) $(OBJECT)"\
+ "cf_email=$(EMAIL)" \
+ "d_crypt=$(D_CRYPT)" \
+ "d_mymalloc=$(PERL_MALLOC)" \
+ "libs=$(LIBFILES)" \
+ "incpath=$(CCINCDIR)" \
+ "libperl=$(PERLIMPLIB)" \
+ "libpth=$(CCLIBDIR)" \
+ "libc=$(LIBC)" \
+ "static_ext=$(STATIC_EXT)" \
+ "dynamic_ext=$(DYNAMIC_EXT)" \
+ "usethreads=$(USE_THREADS)" \
+ "LINK_FLAGS=$(LINK_FLAGS)" \
"optimize=$(OPTIMIZE)"
#
# Top targets
#
-all: $(GLOBEXE) $(X2P) $(MINIMOD) $(CONFIGPM)
-
-pass2 : $(PERLEXE) $(PERL95EXE) $(DYNALOADMODULES)
+all: $(GLOBEXE) $(X2P) $(MINIMOD) $(CONFIGPM) $(PERLEXE) $(PERL95EXE) $(DYNALOADMODULES)
$(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
@@ -446,7 +463,6 @@ $(GLOBEXE): perlglob$(o)
perlglob$(o) : perlglob.c
-..\miniperlmain$(o) : ..\miniperlmain.c $(CORE_H)
config.w32 : $(CFGSH_TMPL)
copy $(CFGSH_TMPL) config.w32
@@ -464,16 +480,22 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
$(XCOPY) ..\*.h $(COREDIR)\*.*
$(XCOPY) *.h $(COREDIR)\*.*
$(RCOPY) include $(COREDIR)\*.*
- $(MINIPERLEXE) -I..\lib config_h.PL || $(MAKE) CCTYPE=$(CCTYPE) \
- RUNTIME=$(RUNTIME) CFG=$(CFG) OBJECTDEF=$(OBJECT) pass2
+ $(MINIPERL) -I..\lib config_h.PL || $(MAKE) CCTYPE=$(CCTYPE) \
+ RUNTIME=$(RUNTIME) CFG=$(CFG) $(CONFIGPM)
-!IF "$(OBJECTDEF)" != "-DPERL_OBJECT"
-$(MINIPERL) : ..\miniperlmain$(o) $(CORE_OBJ) $(WIN32_OBJ)
+$(MINIPERL) : $(MINIDIR) $(MINI_OBJ) $(MINIWIN)
$(LINK32) -subsystem:console -out:$@ @<<
- $(LINK_FLAGS) $(LIBFILES) ..\miniperlmain$(o) $(CORE_OBJ) $(WIN32_OBJ)
+ $(LINK_FLAGS) $(LIBFILES) $(MINI_OBJ) $(MINIWIN)
<<
-!ENDIF
+$(MINIDIR) :
+ if not exist "$(MINIDIR)" mkdir "$(MINIDIR)"
+
+$(MINI_OBJ) : $(CORE_H)
+ $(CC) -c $(CFLAGSMINI) $(OBJOUT_FLAG)$@ ..\$(*F).c
+
+$(MINIWIN) : $(CORE_H)
+ $(CC) -c $(CFLAGSMINI) $(OBJOUT_FLAG)$@ $(*F).c
$(WIN32_OBJ) : $(CORE_H)
$(CORE_OBJ) : $(CORE_H)
@@ -514,19 +536,19 @@ $(MINIMOD) : $(MINIPERL) ..\minimod.pl
cd .. && miniperl minimod.pl > lib\ExtUtils\Miniperl.pm
..\x2p\a2p$(o) : ..\x2p\a2p.c
- $(CC) $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
+ $(CC) $(CFLAGSMINI) $(OBJOUT_FLAG)$@ -c ..\x2p\a2p.c
..\x2p\hash$(o) : ..\x2p\hash.c
- $(CC) $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\hash.c
+ $(CC) $(CFLAGSMINI) $(OBJOUT_FLAG)$@ -c ..\x2p\hash.c
..\x2p\str$(o) : ..\x2p\str.c
- $(CC) $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\str.c
+ $(CC) $(CFLAGSMINI) $(OBJOUT_FLAG)$@ -c ..\x2p\str.c
..\x2p\util$(o) : ..\x2p\util.c
- $(CC) $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\util.c
+ $(CC) $(CFLAGSMINI) $(OBJOUT_FLAG)$@ -c ..\x2p\util.c
..\x2p\walk$(o) : ..\x2p\walk.c
- $(CC) $(CFLAGS) $(OBJOUT_FLAG)$@ -c ..\x2p\walk.c
+ $(CC) $(CFLAGSMINI) $(OBJOUT_FLAG)$@ -c ..\x2p\walk.c
$(X2P) : $(X2P_OBJ)
$(LINK32) -subsystem:console -out:$@ @<<
@@ -559,7 +581,7 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) perlmain$(o) $(DLL_OBJ) $(WIN32_OBJ)
copy perl.exe $@
del perl.exe
copy splittree.pl ..
- $(MINIPERLEXE) -I..\lib ..\splittree.pl "../LIB" "../LIB/auto"
+ $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" "../LIB/auto"
$(PERL95EXE): $(PERLDLL) $(CONFIGPM) $(PERL95_OBJ) $(DLL_OBJ)
$(LINK32) -subsystem:console -out:perl95.exe $(LINK_FLAGS) $(LIBFILES) \
@@ -575,7 +597,7 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) perlmain$(o)
copy perl.exe $@
del perl.exe
copy splittree.pl ..
- $(MINIPERLEXE) -I..\lib ..\splittree.pl "../LIB" "../LIB/auto"
+ $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" "../LIB/auto"
$(PERL95EXE): $(PERLDLL) $(CONFIGPM) $(PERL95_OBJ)
$(LINK32) -subsystem:console -out:perl95.exe $(LINK_FLAGS) $(LIBFILES) \
@@ -645,7 +667,7 @@ $(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs
doc: $(PERLEXE)
cd ..\pod
- $(MAKE) -f ..\win32\pod.mak checkpods pod2html pod2latex \
+ $(MAKE) OBJECTDEF=$(OBJECT) -f ..\win32\pod.mak checkpods pod2html pod2latex \
pod2man pod2text
$(XCOPY) *.bat ..\win32\bin\*.*
cd ..\win32
@@ -656,7 +678,7 @@ doc: $(PERLEXE)
utils: $(PERLEXE)
cd ..\utils
- nmake PERL=$(MINIPERL)
+ $(MAKE) PERL=$(PERLEXE)
$(PERLEXE) -I..\lib ..\win32\$(PL2BAT) h2ph splain perlbug pl2pm c2ph
$(PERLEXE) ..\win32\$(PL2BAT) h2xs perldoc pstruct
$(XCOPY) *.bat ..\win32\bin\*.*
@@ -731,6 +753,7 @@ clean :
-@erase $(PERLEXE)
-@erase $(PERLDLL)
-@erase $(CORE_OBJ)
+ if exist "$(MINIDIR)\$(NULL)" rmdir /s /q "$(MINIDIR)"
-@erase $(WIN32_OBJ)
-@erase $(DLL_OBJ)
-@erase $(X2P_OBJ)
@@ -740,4 +763,3 @@ clean :
-@erase *.ilk
-@erase *.pdb
-
diff --git a/win32/config_h.PL b/win32/config_h.PL
index f317e5a407..3e54688366 100644
--- a/win32/config_h.PL
+++ b/win32/config_h.PL
@@ -2,6 +2,7 @@
use Config;
use File::Compare qw(compare);
use File::Copy qw(copy);
+my $OBJ = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
my $name = $0;
$name =~ s#^(.*)\.PL$#../$1.SH#;
open(SH,"<$name") || die "Cannot open $name:$!";
@@ -64,7 +65,7 @@ chmod(0666,"../lib/CORE/config.h");
copy("$file.new","../lib/CORE/config.h") || die "Cannot copy:$!";
chmod(0444,"../lib/CORE/config.h");
-if (compare("$file.new",$file))
+if (!$OBJ && compare("$file.new",$file))
{
warn "$file has changed\n";
chmod(0666,$file);
@@ -73,6 +74,11 @@ if (compare("$file.new",$file))
#chmod(0444,$file);
exit(1);
}
+else
+ {
+ unlink ("$file.new");
+ exit(0);
+ }
sub Config
{
diff --git a/win32/runperl.c b/win32/runperl.c
index cecdfeb9ff..d00815809b 100644
--- a/win32/runperl.c
+++ b/win32/runperl.c
@@ -356,6 +356,10 @@ public:
{
CALLFUNCRET(chmod(filename, pmode))
};
+ virtual int Chown(const char *filename, uid_t owner, gid_t group, int &err)
+ {
+ CALLFUNCERR(chown(filename, owner, group))
+ };
virtual int Chsize(int handle, long size, int &err)
{
CALLFUNCRET(chsize(handle, size))