[asperl] added AS patch#12 with minor changes
Gurusamy Sarathy [Thu, 12 Mar 1998 00:51:08 +0000 (00:51 +0000)]
p4raw-id: //depot/asperl@806

17 files changed:
ObjXSub.h
bytecode.h
byterun.c
doio.c
iplio.h
lib/ExtUtils/MM_Unix.pm
lib/ExtUtils/MakeMaker.pm
lib/ExtUtils/Mksymlists.pm
lib/ExtUtils/xsubpp
objpp.h
perl.c
perllio.h
proto.h
regcomp.c
win32/Makefile
win32/config_h.PL
win32/runperl.c

index 46c52d5..c0a9c9b 100644 (file)
--- a/ObjXSub.h
+++ b/ObjXSub.h
 
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
 #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
index e86c146..92c124d 100644 (file)
@@ -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]
                                    
index c99fa08..e77d3a3 100644 (file)
--- 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 d8ce25d..4e263e1 100644 (file)
--- 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 9a6646d..0c5455f 100644 (file)
--- 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;
index 888e539..e5c4786 100644 (file)
@@ -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
index f3b843f..c86486a 100644 (file)
@@ -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){
index 6bd49f2..2f2366a 100644 (file)
@@ -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;
index b8ec042..58b3a08 100755 (executable)
@@ -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 61f7f19..b2dc52c 100644 (file)
--- a/objpp.h
+++ b/objpp.h
 #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
 #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
 #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
 #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 ff381a8..c4f1bcc 100644 (file)
--- 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;
 
index 283e6ce..f045655 100644 (file)
--- 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 0960ce5..2384f7f 100644 (file)
--- 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)
index 14a6e46..aba1f9a 100644 (file)
--- 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*/
index 9acbb54..7dd49ab 100644 (file)
@@ -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
 
-
index f317e5a..3e54688 100644 (file)
@@ -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
 {
index cecdfeb..d008158 100644 (file)
@@ -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))