Change 32136 introduced an error - passing a const char * to
[p5sagit/p5-mst-13.2.git] / embedvar.h
index ae37202..26d5821 100644 (file)
-/* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
-   This file is built by embed.pl from global.sym, intrpvar.h,
-   and thrdvar.h.  Any changes made here will be lost!
-*/
+/*  -*- buffer-read-only: t -*-
+ *
+ *    embedvar.h
+ *
+ *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ *    2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, by Larry Wall and others
+ *
+ *    You may distribute under the terms of either the GNU General Public
+ *    License or the Artistic License, as specified in the README file.
+ *
+ * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+ * This file is built by embed.pl from data in embed.fnc, embed.pl,
+ * pp.sym, intrpvar.h, and perlvars.h.
+ * Any changes made here will be lost!
+ *
+ * Edit those files and run 'make regen_headers' to effect changes.
+ */
 
 /* (Doing namespace management portably in C is really gross.) */
 
-/*  EMBED has no run-time penalty, but helps keep the Perl namespace
-    from colliding with that used by other libraries pulled in
-    by extensions or by embedding perl.  Allow a cc -DNO_EMBED
-    override, however, to keep binary compatability with previous
-    versions of perl.
-*/
-
-
-/* Put interpreter-specific symbols into a struct? */
-
-#ifdef MULTIPLICITY
-
-#ifndef USE_THREADS
-/* If we do not have threads then per-thread vars are per-interpreter */
-
-#define PL_Sv                  (curinterp->TSv)
-#define PL_Xpv                 (curinterp->TXpv)
-#define PL_av_fetch_sv         (curinterp->Tav_fetch_sv)
-#define PL_bodytarget          (curinterp->Tbodytarget)
-#define PL_bostr               (curinterp->Tbostr)
-#define PL_chopset             (curinterp->Tchopset)
-#define PL_colors              (curinterp->Tcolors)
-#define PL_colorset            (curinterp->Tcolorset)
-#define PL_curcop              (curinterp->Tcurcop)
-#define PL_curpad              (curinterp->Tcurpad)
-#define PL_curpm               (curinterp->Tcurpm)
-#define PL_curstack            (curinterp->Tcurstack)
-#define PL_curstackinfo                (curinterp->Tcurstackinfo)
-#define PL_curstash            (curinterp->Tcurstash)
-#define PL_defoutgv            (curinterp->Tdefoutgv)
-#define PL_defstash            (curinterp->Tdefstash)
-#define PL_delaymagic          (curinterp->Tdelaymagic)
-#define PL_dirty               (curinterp->Tdirty)
-#define PL_extralen            (curinterp->Textralen)
-#define PL_firstgv             (curinterp->Tfirstgv)
-#define PL_formtarget          (curinterp->Tformtarget)
-#define PL_hv_fetch_ent_mh     (curinterp->Thv_fetch_ent_mh)
-#define PL_hv_fetch_sv         (curinterp->Thv_fetch_sv)
-#define PL_in_eval             (curinterp->Tin_eval)
-#define PL_last_in_gv          (curinterp->Tlast_in_gv)
-#define PL_lastgotoprobe       (curinterp->Tlastgotoprobe)
-#define PL_lastscream          (curinterp->Tlastscream)
-#define PL_localizing          (curinterp->Tlocalizing)
-#define PL_mainstack           (curinterp->Tmainstack)
-#define PL_markstack           (curinterp->Tmarkstack)
-#define PL_markstack_max       (curinterp->Tmarkstack_max)
-#define PL_markstack_ptr       (curinterp->Tmarkstack_ptr)
-#define PL_maxscream           (curinterp->Tmaxscream)
-#define PL_modcount            (curinterp->Tmodcount)
-#define PL_nrs                 (curinterp->Tnrs)
-#define PL_ofs                 (curinterp->Tofs)
-#define PL_ofslen              (curinterp->Tofslen)
-#define PL_op                  (curinterp->Top)
-#define PL_opsave              (curinterp->Topsave)
-#define PL_reg_eval_set                (curinterp->Treg_eval_set)
-#define PL_reg_flags           (curinterp->Treg_flags)
-#define PL_reg_start_tmp       (curinterp->Treg_start_tmp)
-#define PL_reg_start_tmpl      (curinterp->Treg_start_tmpl)
-#define PL_regbol              (curinterp->Tregbol)
-#define PL_regcc               (curinterp->Tregcc)
-#define PL_regcode             (curinterp->Tregcode)
-#define PL_regcomp_parse       (curinterp->Tregcomp_parse)
-#define PL_regcomp_rx          (curinterp->Tregcomp_rx)
-#define PL_regcompp            (curinterp->Tregcompp)
-#define PL_regdata             (curinterp->Tregdata)
-#define PL_regdummy            (curinterp->Tregdummy)
-#define PL_regendp             (curinterp->Tregendp)
-#define PL_regeol              (curinterp->Tregeol)
-#define PL_regexecp            (curinterp->Tregexecp)
-#define PL_regflags            (curinterp->Tregflags)
-#define PL_regindent           (curinterp->Tregindent)
-#define PL_reginput            (curinterp->Treginput)
-#define PL_reginterp_cnt       (curinterp->Treginterp_cnt)
-#define PL_reglastparen                (curinterp->Treglastparen)
-#define PL_regnarrate          (curinterp->Tregnarrate)
-#define PL_regnaughty          (curinterp->Tregnaughty)
-#define PL_regnpar             (curinterp->Tregnpar)
-#define PL_regprecomp          (curinterp->Tregprecomp)
-#define PL_regprev             (curinterp->Tregprev)
-#define PL_regprogram          (curinterp->Tregprogram)
-#define PL_regsawback          (curinterp->Tregsawback)
-#define PL_regseen             (curinterp->Tregseen)
-#define PL_regsize             (curinterp->Tregsize)
-#define PL_regstartp           (curinterp->Tregstartp)
-#define PL_regtill             (curinterp->Tregtill)
-#define PL_regxend             (curinterp->Tregxend)
-#define PL_restartop           (curinterp->Trestartop)
-#define PL_retstack            (curinterp->Tretstack)
-#define PL_retstack_ix         (curinterp->Tretstack_ix)
-#define PL_retstack_max                (curinterp->Tretstack_max)
-#define PL_rs                  (curinterp->Trs)
-#define PL_savestack           (curinterp->Tsavestack)
-#define PL_savestack_ix                (curinterp->Tsavestack_ix)
-#define PL_savestack_max       (curinterp->Tsavestack_max)
-#define PL_scopestack          (curinterp->Tscopestack)
-#define PL_scopestack_ix       (curinterp->Tscopestack_ix)
-#define PL_scopestack_max      (curinterp->Tscopestack_max)
-#define PL_screamfirst         (curinterp->Tscreamfirst)
-#define PL_screamnext          (curinterp->Tscreamnext)
-#define PL_secondgv            (curinterp->Tsecondgv)
-#define PL_seen_evals          (curinterp->Tseen_evals)
-#define PL_seen_zerolen                (curinterp->Tseen_zerolen)
-#define PL_sortcop             (curinterp->Tsortcop)
-#define PL_sortcxix            (curinterp->Tsortcxix)
-#define PL_sortstash           (curinterp->Tsortstash)
-#define PL_stack_base          (curinterp->Tstack_base)
-#define PL_stack_max           (curinterp->Tstack_max)
-#define PL_stack_sp            (curinterp->Tstack_sp)
-#define PL_start_env           (curinterp->Tstart_env)
-#define PL_statbuf             (curinterp->Tstatbuf)
-#define PL_statcache           (curinterp->Tstatcache)
-#define PL_statgv              (curinterp->Tstatgv)
-#define PL_statname            (curinterp->Tstatname)
-#define PL_tainted             (curinterp->Ttainted)
-#define PL_timesbuf            (curinterp->Ttimesbuf)
-#define PL_tmps_floor          (curinterp->Ttmps_floor)
-#define PL_tmps_ix             (curinterp->Ttmps_ix)
-#define PL_tmps_max            (curinterp->Ttmps_max)
-#define PL_tmps_stack          (curinterp->Ttmps_stack)
-#define PL_top_env             (curinterp->Ttop_env)
-#define PL_toptarget           (curinterp->Ttoptarget)
+/*
+   The following combinations of MULTIPLICITY and PERL_IMPLICIT_CONTEXT
+   are supported:
+     1) none
+     2) MULTIPLICITY   # supported for compatibility
+     3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
 
-#endif /* !USE_THREADS */
+   All other combinations of these flags are errors.
 
-/* These are always per-interpreter if there is more than one */
+   only #3 is supported directly, while #2 is a special
+   case of #3 (supported by redefining vTHX appropriately).
+*/
 
-#define PL_Argv                        (curinterp->IArgv)
-#define PL_Cmd                 (curinterp->ICmd)
-#define PL_DBcv                        (curinterp->IDBcv)
-#define PL_DBgv                        (curinterp->IDBgv)
-#define PL_DBline              (curinterp->IDBline)
-#define PL_DBsignal            (curinterp->IDBsignal)
-#define PL_DBsingle            (curinterp->IDBsingle)
-#define PL_DBsub               (curinterp->IDBsub)
-#define PL_DBtrace             (curinterp->IDBtrace)
-#define PL_ampergv             (curinterp->Iampergv)
-#define PL_archpat_auto                (curinterp->Iarchpat_auto)
-#define PL_argvgv              (curinterp->Iargvgv)
-#define PL_argvoutgv           (curinterp->Iargvoutgv)
-#define PL_basetime            (curinterp->Ibasetime)
-#define PL_beginav             (curinterp->Ibeginav)
-#define PL_cddir               (curinterp->Icddir)
-#define PL_compcv              (curinterp->Icompcv)
-#define PL_compiling           (curinterp->Icompiling)
-#define PL_comppad             (curinterp->Icomppad)
-#define PL_comppad_name                (curinterp->Icomppad_name)
-#define PL_comppad_name_fill   (curinterp->Icomppad_name_fill)
-#define PL_comppad_name_floor  (curinterp->Icomppad_name_floor)
-#define PL_copline             (curinterp->Icopline)
-#define PL_curcopdb            (curinterp->Icurcopdb)
-#define PL_curstname           (curinterp->Icurstname)
-#define PL_dbargs              (curinterp->Idbargs)
-#define PL_debdelim            (curinterp->Idebdelim)
-#define PL_debname             (curinterp->Idebname)
-#define PL_debstash            (curinterp->Idebstash)
-#define PL_defgv               (curinterp->Idefgv)
-#define PL_diehook             (curinterp->Idiehook)
-#define PL_dlevel              (curinterp->Idlevel)
-#define PL_dlmax               (curinterp->Idlmax)
-#define PL_doextract           (curinterp->Idoextract)
-#define PL_doswitches          (curinterp->Idoswitches)
-#define PL_dowarn              (curinterp->Idowarn)
-#define PL_dumplvl             (curinterp->Idumplvl)
-#define PL_e_script            (curinterp->Ie_script)
-#define PL_endav               (curinterp->Iendav)
-#define PL_envgv               (curinterp->Ienvgv)
-#define PL_errgv               (curinterp->Ierrgv)
-#define PL_eval_root           (curinterp->Ieval_root)
-#define PL_eval_start          (curinterp->Ieval_start)
-#define PL_exitlist            (curinterp->Iexitlist)
-#define PL_exitlistlen         (curinterp->Iexitlistlen)
-#define PL_fdpid               (curinterp->Ifdpid)
-#define PL_filemode            (curinterp->Ifilemode)
-#define PL_forkprocess         (curinterp->Iforkprocess)
-#define PL_formfeed            (curinterp->Iformfeed)
-#define PL_generation          (curinterp->Igeneration)
-#define PL_gensym              (curinterp->Igensym)
-#define PL_globalstash         (curinterp->Iglobalstash)
-#define PL_hintgv              (curinterp->Ihintgv)
-#define PL_in_clean_all                (curinterp->Iin_clean_all)
-#define PL_in_clean_objs       (curinterp->Iin_clean_objs)
-#define PL_incgv               (curinterp->Iincgv)
-#define PL_initav              (curinterp->Iinitav)
-#define PL_inplace             (curinterp->Iinplace)
-#define PL_last_proto          (curinterp->Ilast_proto)
-#define PL_lastfd              (curinterp->Ilastfd)
-#define PL_lastsize            (curinterp->Ilastsize)
-#define PL_lastspbase          (curinterp->Ilastspbase)
-#define PL_laststatval         (curinterp->Ilaststatval)
-#define PL_laststype           (curinterp->Ilaststype)
-#define PL_leftgv              (curinterp->Ileftgv)
-#define PL_lineary             (curinterp->Ilineary)
-#define PL_linestart           (curinterp->Ilinestart)
-#define PL_localpatches                (curinterp->Ilocalpatches)
-#define PL_main_cv             (curinterp->Imain_cv)
-#define PL_main_root           (curinterp->Imain_root)
-#define PL_main_start          (curinterp->Imain_start)
-#define PL_maxsysfd            (curinterp->Imaxsysfd)
-#define PL_mess_sv             (curinterp->Imess_sv)
-#define PL_minus_F             (curinterp->Iminus_F)
-#define PL_minus_a             (curinterp->Iminus_a)
-#define PL_minus_c             (curinterp->Iminus_c)
-#define PL_minus_l             (curinterp->Iminus_l)
-#define PL_minus_n             (curinterp->Iminus_n)
-#define PL_minus_p             (curinterp->Iminus_p)
-#define PL_modglobal           (curinterp->Imodglobal)
-#define PL_multiline           (curinterp->Imultiline)
-#define PL_mystrk              (curinterp->Imystrk)
-#define PL_ofmt                        (curinterp->Iofmt)
-#define PL_oldlastpm           (curinterp->Ioldlastpm)
-#define PL_oldname             (curinterp->Ioldname)
-#define PL_op_mask             (curinterp->Iop_mask)
-#define PL_origargc            (curinterp->Iorigargc)
-#define PL_origargv            (curinterp->Iorigargv)
-#define PL_origfilename                (curinterp->Iorigfilename)
-#define PL_ors                 (curinterp->Iors)
-#define PL_orslen              (curinterp->Iorslen)
-#define PL_parsehook           (curinterp->Iparsehook)
-#define PL_patchlevel          (curinterp->Ipatchlevel)
-#define PL_pending_ident       (curinterp->Ipending_ident)
-#define PL_perl_destruct_level (curinterp->Iperl_destruct_level)
-#define PL_perldb              (curinterp->Iperldb)
-#define PL_preambleav          (curinterp->Ipreambleav)
-#define PL_preambled           (curinterp->Ipreambled)
-#define PL_preprocess          (curinterp->Ipreprocess)
-#define PL_profiledata         (curinterp->Iprofiledata)
-#define PL_replgv              (curinterp->Ireplgv)
-#define PL_rightgv             (curinterp->Irightgv)
-#define PL_rsfp                        (curinterp->Irsfp)
-#define PL_rsfp_filters                (curinterp->Irsfp_filters)
-#define PL_sawampersand                (curinterp->Isawampersand)
-#define PL_sawstudy            (curinterp->Isawstudy)
-#define PL_sawvec              (curinterp->Isawvec)
-#define PL_siggv               (curinterp->Isiggv)
-#define PL_splitstr            (curinterp->Isplitstr)
-#define PL_statusvalue         (curinterp->Istatusvalue)
-#define PL_statusvalue_vms     (curinterp->Istatusvalue_vms)
-#define PL_stdingv             (curinterp->Istdingv)
-#define PL_strchop             (curinterp->Istrchop)
-#define PL_strtab              (curinterp->Istrtab)
-#define PL_sub_generation      (curinterp->Isub_generation)
-#define PL_sublex_info         (curinterp->Isublex_info)
-#define PL_sv_arenaroot                (curinterp->Isv_arenaroot)
-#define PL_sv_count            (curinterp->Isv_count)
-#define PL_sv_objcount         (curinterp->Isv_objcount)
-#define PL_sv_root             (curinterp->Isv_root)
-#define PL_sys_intern          (curinterp->Isys_intern)
-#define PL_tainting            (curinterp->Itainting)
-#define PL_threadnum           (curinterp->Ithreadnum)
-#define PL_thrsv               (curinterp->Ithrsv)
-#define PL_unsafe              (curinterp->Iunsafe)
-#define PL_warnhook            (curinterp->Iwarnhook)
+#if defined(MULTIPLICITY)
+/* cases 2 and 3 above */
+
+#  if defined(PERL_IMPLICIT_CONTEXT)
+#    define vTHX       aTHX
+#  else
+#    define vTHX       PERL_GET_INTERP
+#  endif
+
+#define PL_Argv                        (vTHX->IArgv)
+#define PL_Cmd                 (vTHX->ICmd)
+#define PL_DBassertion         (vTHX->IDBassertion)
+#define PL_DBcv                        (vTHX->IDBcv)
+#define PL_DBgv                        (vTHX->IDBgv)
+#define PL_DBline              (vTHX->IDBline)
+#define PL_DBsignal            (vTHX->IDBsignal)
+#define PL_DBsingle            (vTHX->IDBsingle)
+#define PL_DBsub               (vTHX->IDBsub)
+#define PL_DBtrace             (vTHX->IDBtrace)
+#define PL_Dir                 (vTHX->IDir)
+#define PL_Env                 (vTHX->IEnv)
+#define PL_LIO                 (vTHX->ILIO)
+#define PL_Mem                 (vTHX->IMem)
+#define PL_MemParse            (vTHX->IMemParse)
+#define PL_MemShared           (vTHX->IMemShared)
+#define PL_OpPtr               (vTHX->IOpPtr)
+#define PL_OpSlab              (vTHX->IOpSlab)
+#define PL_OpSpace             (vTHX->IOpSpace)
+#define PL_Proc                        (vTHX->IProc)
+#define PL_Sock                        (vTHX->ISock)
+#define PL_StdIO               (vTHX->IStdIO)
+#define PL_Sv                  (vTHX->ISv)
+#define PL_Xpv                 (vTHX->IXpv)
+#define PL_amagic_generation   (vTHX->Iamagic_generation)
+#define PL_an                  (vTHX->Ian)
+#define PL_argvgv              (vTHX->Iargvgv)
+#define PL_argvout_stack       (vTHX->Iargvout_stack)
+#define PL_argvoutgv           (vTHX->Iargvoutgv)
+#define PL_basetime            (vTHX->Ibasetime)
+#define PL_beginav             (vTHX->Ibeginav)
+#define PL_beginav_save                (vTHX->Ibeginav_save)
+#define PL_bitcount            (vTHX->Ibitcount)
+#define PL_body_arenas         (vTHX->Ibody_arenas)
+#define PL_body_roots          (vTHX->Ibody_roots)
+#define PL_bodytarget          (vTHX->Ibodytarget)
+#define PL_checkav             (vTHX->Icheckav)
+#define PL_checkav_save                (vTHX->Icheckav_save)
+#define PL_chopset             (vTHX->Ichopset)
+#define PL_clocktick           (vTHX->Iclocktick)
+#define PL_collation_ix                (vTHX->Icollation_ix)
+#define PL_collation_name      (vTHX->Icollation_name)
+#define PL_collation_standard  (vTHX->Icollation_standard)
+#define PL_collxfrm_base       (vTHX->Icollxfrm_base)
+#define PL_collxfrm_mult       (vTHX->Icollxfrm_mult)
+#define PL_colors              (vTHX->Icolors)
+#define PL_colorset            (vTHX->Icolorset)
+#define PL_compcv              (vTHX->Icompcv)
+#define PL_compiling           (vTHX->Icompiling)
+#define PL_comppad             (vTHX->Icomppad)
+#define PL_comppad_name                (vTHX->Icomppad_name)
+#define PL_comppad_name_fill   (vTHX->Icomppad_name_fill)
+#define PL_comppad_name_floor  (vTHX->Icomppad_name_floor)
+#define PL_cop_seqmax          (vTHX->Icop_seqmax)
+#define PL_cryptseen           (vTHX->Icryptseen)
+#define PL_curcop              (vTHX->Icurcop)
+#define PL_curcopdb            (vTHX->Icurcopdb)
+#define PL_curpad              (vTHX->Icurpad)
+#define PL_curpm               (vTHX->Icurpm)
+#define PL_curstack            (vTHX->Icurstack)
+#define PL_curstackinfo                (vTHX->Icurstackinfo)
+#define PL_curstash            (vTHX->Icurstash)
+#define PL_curstname           (vTHX->Icurstname)
+#define PL_custom_op_descs     (vTHX->Icustom_op_descs)
+#define PL_custom_op_names     (vTHX->Icustom_op_names)
+#define PL_cv_has_eval         (vTHX->Icv_has_eval)
+#define PL_dbargs              (vTHX->Idbargs)
+#define PL_debstash            (vTHX->Idebstash)
+#define PL_debug               (vTHX->Idebug)
+#define PL_debug_pad           (vTHX->Idebug_pad)
+#define PL_def_layerlist       (vTHX->Idef_layerlist)
+#define PL_defgv               (vTHX->Idefgv)
+#define PL_defoutgv            (vTHX->Idefoutgv)
+#define PL_defstash            (vTHX->Idefstash)
+#define PL_delaymagic          (vTHX->Idelaymagic)
+#define PL_diehook             (vTHX->Idiehook)
+#define PL_dirty               (vTHX->Idirty)
+#define PL_doextract           (vTHX->Idoextract)
+#define PL_doswitches          (vTHX->Idoswitches)
+#define PL_dowarn              (vTHX->Idowarn)
+#define PL_dumper_fd           (vTHX->Idumper_fd)
+#define PL_dumpindent          (vTHX->Idumpindent)
+#define PL_e_script            (vTHX->Ie_script)
+#define PL_efloatbuf           (vTHX->Iefloatbuf)
+#define PL_efloatsize          (vTHX->Iefloatsize)
+#define PL_egid                        (vTHX->Iegid)
+#define PL_encoding            (vTHX->Iencoding)
+#define PL_endav               (vTHX->Iendav)
+#define PL_envgv               (vTHX->Ienvgv)
+#define PL_errgv               (vTHX->Ierrgv)
+#define PL_errors              (vTHX->Ierrors)
+#define PL_euid                        (vTHX->Ieuid)
+#define PL_eval_root           (vTHX->Ieval_root)
+#define PL_eval_start          (vTHX->Ieval_start)
+#define PL_evalseq             (vTHX->Ievalseq)
+#define PL_exit_flags          (vTHX->Iexit_flags)
+#define PL_exitlist            (vTHX->Iexitlist)
+#define PL_exitlistlen         (vTHX->Iexitlistlen)
+#define PL_fdpid               (vTHX->Ifdpid)
+#define PL_filemode            (vTHX->Ifilemode)
+#define PL_firstgv             (vTHX->Ifirstgv)
+#define PL_forkprocess         (vTHX->Iforkprocess)
+#define PL_formfeed            (vTHX->Iformfeed)
+#define PL_formtarget          (vTHX->Iformtarget)
+#define PL_generation          (vTHX->Igeneration)
+#define PL_gensym              (vTHX->Igensym)
+#define PL_gid                 (vTHX->Igid)
+#define PL_glob_index          (vTHX->Iglob_index)
+#define PL_globalstash         (vTHX->Iglobalstash)
+#define PL_hash_seed           (vTHX->Ihash_seed)
+#define PL_hintgv              (vTHX->Ihintgv)
+#define PL_hints               (vTHX->Ihints)
+#define PL_hv_fetch_ent_mh     (vTHX->Ihv_fetch_ent_mh)
+#define PL_in_clean_all                (vTHX->Iin_clean_all)
+#define PL_in_clean_objs       (vTHX->Iin_clean_objs)
+#define PL_in_eval             (vTHX->Iin_eval)
+#define PL_in_load_module      (vTHX->Iin_load_module)
+#define PL_incgv               (vTHX->Iincgv)
+#define PL_initav              (vTHX->Iinitav)
+#define PL_inplace             (vTHX->Iinplace)
+#define PL_isarev              (vTHX->Iisarev)
+#define PL_known_layers                (vTHX->Iknown_layers)
+#define PL_last_in_gv          (vTHX->Ilast_in_gv)
+#define PL_last_swash_hv       (vTHX->Ilast_swash_hv)
+#define PL_last_swash_key      (vTHX->Ilast_swash_key)
+#define PL_last_swash_klen     (vTHX->Ilast_swash_klen)
+#define PL_last_swash_slen     (vTHX->Ilast_swash_slen)
+#define PL_last_swash_tmps     (vTHX->Ilast_swash_tmps)
+#define PL_lastfd              (vTHX->Ilastfd)
+#define PL_lastgotoprobe       (vTHX->Ilastgotoprobe)
+#define PL_lastscream          (vTHX->Ilastscream)
+#define PL_laststatval         (vTHX->Ilaststatval)
+#define PL_laststype           (vTHX->Ilaststype)
+#define PL_localizing          (vTHX->Ilocalizing)
+#define PL_localpatches                (vTHX->Ilocalpatches)
+#define PL_lockhook            (vTHX->Ilockhook)
+#define PL_madskills           (vTHX->Imadskills)
+#define PL_main_cv             (vTHX->Imain_cv)
+#define PL_main_root           (vTHX->Imain_root)
+#define PL_main_start          (vTHX->Imain_start)
+#define PL_mainstack           (vTHX->Imainstack)
+#define PL_markstack           (vTHX->Imarkstack)
+#define PL_markstack_max       (vTHX->Imarkstack_max)
+#define PL_markstack_ptr       (vTHX->Imarkstack_ptr)
+#define PL_max_intro_pending   (vTHX->Imax_intro_pending)
+#define PL_maxo                        (vTHX->Imaxo)
+#define PL_maxscream           (vTHX->Imaxscream)
+#define PL_maxsysfd            (vTHX->Imaxsysfd)
+#define PL_memory_debug_header (vTHX->Imemory_debug_header)
+#define PL_mess_sv             (vTHX->Imess_sv)
+#define PL_min_intro_pending   (vTHX->Imin_intro_pending)
+#define PL_minus_E             (vTHX->Iminus_E)
+#define PL_minus_F             (vTHX->Iminus_F)
+#define PL_minus_a             (vTHX->Iminus_a)
+#define PL_minus_c             (vTHX->Iminus_c)
+#define PL_minus_l             (vTHX->Iminus_l)
+#define PL_minus_n             (vTHX->Iminus_n)
+#define PL_minus_p             (vTHX->Iminus_p)
+#define PL_modcount            (vTHX->Imodcount)
+#define PL_modglobal           (vTHX->Imodglobal)
+#define PL_my_cxt_keys         (vTHX->Imy_cxt_keys)
+#define PL_my_cxt_list         (vTHX->Imy_cxt_list)
+#define PL_my_cxt_size         (vTHX->Imy_cxt_size)
+#define PL_na                  (vTHX->Ina)
+#define PL_nice_chunk          (vTHX->Inice_chunk)
+#define PL_nice_chunk_size     (vTHX->Inice_chunk_size)
+#define PL_nomemok             (vTHX->Inomemok)
+#define PL_numeric_local       (vTHX->Inumeric_local)
+#define PL_numeric_name                (vTHX->Inumeric_name)
+#define PL_numeric_radix_sv    (vTHX->Inumeric_radix_sv)
+#define PL_numeric_standard    (vTHX->Inumeric_standard)
+#define PL_ofs_sv              (vTHX->Iofs_sv)
+#define PL_oldname             (vTHX->Ioldname)
+#define PL_op                  (vTHX->Iop)
+#define PL_op_mask             (vTHX->Iop_mask)
+#define PL_opsave              (vTHX->Iopsave)
+#define PL_origalen            (vTHX->Iorigalen)
+#define PL_origargc            (vTHX->Iorigargc)
+#define PL_origargv            (vTHX->Iorigargv)
+#define PL_origenviron         (vTHX->Iorigenviron)
+#define PL_origfilename                (vTHX->Iorigfilename)
+#define PL_ors_sv              (vTHX->Iors_sv)
+#define PL_osname              (vTHX->Iosname)
+#define PL_pad_reset_pending   (vTHX->Ipad_reset_pending)
+#define PL_padix               (vTHX->Ipadix)
+#define PL_padix_floor         (vTHX->Ipadix_floor)
+#define PL_parser              (vTHX->Iparser)
+#define PL_patchlevel          (vTHX->Ipatchlevel)
+#define PL_peepp               (vTHX->Ipeepp)
+#define PL_perl_destruct_level (vTHX->Iperl_destruct_level)
+#define PL_perldb              (vTHX->Iperldb)
+#define PL_perlio              (vTHX->Iperlio)
+#define PL_pidstatus           (vTHX->Ipidstatus)
+#define PL_ppid                        (vTHX->Ippid)
+#define PL_preambleav          (vTHX->Ipreambleav)
+#define PL_preprocess          (vTHX->Ipreprocess)
+#define PL_profiledata         (vTHX->Iprofiledata)
+#define PL_psig_name           (vTHX->Ipsig_name)
+#define PL_psig_pend           (vTHX->Ipsig_pend)
+#define PL_psig_ptr            (vTHX->Ipsig_ptr)
+#define PL_ptr_table           (vTHX->Iptr_table)
+#define PL_reentrant_buffer    (vTHX->Ireentrant_buffer)
+#define PL_reentrant_retint    (vTHX->Ireentrant_retint)
+#define PL_reg_state           (vTHX->Ireg_state)
+#define PL_regdummy            (vTHX->Iregdummy)
+#define PL_regex_pad           (vTHX->Iregex_pad)
+#define PL_regex_padav         (vTHX->Iregex_padav)
+#define PL_reginterp_cnt       (vTHX->Ireginterp_cnt)
+#define PL_regmatch_slab       (vTHX->Iregmatch_slab)
+#define PL_regmatch_state      (vTHX->Iregmatch_state)
+#define PL_rehash_seed         (vTHX->Irehash_seed)
+#define PL_rehash_seed_set     (vTHX->Irehash_seed_set)
+#define PL_replgv              (vTHX->Ireplgv)
+#define PL_restartop           (vTHX->Irestartop)
+#define PL_rs                  (vTHX->Irs)
+#define PL_runops              (vTHX->Irunops)
+#define PL_savebegin           (vTHX->Isavebegin)
+#define PL_savestack           (vTHX->Isavestack)
+#define PL_savestack_ix                (vTHX->Isavestack_ix)
+#define PL_savestack_max       (vTHX->Isavestack_max)
+#define PL_sawampersand                (vTHX->Isawampersand)
+#define PL_scopestack          (vTHX->Iscopestack)
+#define PL_scopestack_ix       (vTHX->Iscopestack_ix)
+#define PL_scopestack_max      (vTHX->Iscopestack_max)
+#define PL_screamfirst         (vTHX->Iscreamfirst)
+#define PL_screamnext          (vTHX->Iscreamnext)
+#define PL_secondgv            (vTHX->Isecondgv)
+#define PL_sharehook           (vTHX->Isharehook)
+#define PL_sig_pending         (vTHX->Isig_pending)
+#define PL_sighandlerp         (vTHX->Isighandlerp)
+#define PL_signals             (vTHX->Isignals)
+#define PL_slab_count          (vTHX->Islab_count)
+#define PL_slabs               (vTHX->Islabs)
+#define PL_sort_RealCmp                (vTHX->Isort_RealCmp)
+#define PL_sortcop             (vTHX->Isortcop)
+#define PL_sortstash           (vTHX->Isortstash)
+#define PL_splitstr            (vTHX->Isplitstr)
+#define PL_srand_called                (vTHX->Isrand_called)
+#define PL_stack_base          (vTHX->Istack_base)
+#define PL_stack_max           (vTHX->Istack_max)
+#define PL_stack_sp            (vTHX->Istack_sp)
+#define PL_start_env           (vTHX->Istart_env)
+#define PL_stashcache          (vTHX->Istashcache)
+#define PL_statbuf             (vTHX->Istatbuf)
+#define PL_statcache           (vTHX->Istatcache)
+#define PL_statgv              (vTHX->Istatgv)
+#define PL_statname            (vTHX->Istatname)
+#define PL_statusvalue         (vTHX->Istatusvalue)
+#define PL_statusvalue_posix   (vTHX->Istatusvalue_posix)
+#define PL_statusvalue_vms     (vTHX->Istatusvalue_vms)
+#define PL_stderrgv            (vTHX->Istderrgv)
+#define PL_stdingv             (vTHX->Istdingv)
+#define PL_strtab              (vTHX->Istrtab)
+#define PL_sub_generation      (vTHX->Isub_generation)
+#define PL_subline             (vTHX->Isubline)
+#define PL_subname             (vTHX->Isubname)
+#define PL_sv_arenaroot                (vTHX->Isv_arenaroot)
+#define PL_sv_count            (vTHX->Isv_count)
+#define PL_sv_no               (vTHX->Isv_no)
+#define PL_sv_objcount         (vTHX->Isv_objcount)
+#define PL_sv_root             (vTHX->Isv_root)
+#define PL_sv_undef            (vTHX->Isv_undef)
+#define PL_sv_yes              (vTHX->Isv_yes)
+#define PL_sys_intern          (vTHX->Isys_intern)
+#define PL_taint_warn          (vTHX->Itaint_warn)
+#define PL_tainted             (vTHX->Itainted)
+#define PL_tainting            (vTHX->Itainting)
+#define PL_threadhook          (vTHX->Ithreadhook)
+#define PL_timesbuf            (vTHX->Itimesbuf)
+#define PL_tmps_floor          (vTHX->Itmps_floor)
+#define PL_tmps_ix             (vTHX->Itmps_ix)
+#define PL_tmps_max            (vTHX->Itmps_max)
+#define PL_tmps_stack          (vTHX->Itmps_stack)
+#define PL_top_env             (vTHX->Itop_env)
+#define PL_toptarget           (vTHX->Itoptarget)
+#define PL_uid                 (vTHX->Iuid)
+#define PL_unicode             (vTHX->Iunicode)
+#define PL_unitcheckav         (vTHX->Iunitcheckav)
+#define PL_unitcheckav_save    (vTHX->Iunitcheckav_save)
+#define PL_unlockhook          (vTHX->Iunlockhook)
+#define PL_unsafe              (vTHX->Iunsafe)
+#define PL_utf8_alnum          (vTHX->Iutf8_alnum)
+#define PL_utf8_alnumc         (vTHX->Iutf8_alnumc)
+#define PL_utf8_alpha          (vTHX->Iutf8_alpha)
+#define PL_utf8_ascii          (vTHX->Iutf8_ascii)
+#define PL_utf8_cntrl          (vTHX->Iutf8_cntrl)
+#define PL_utf8_digit          (vTHX->Iutf8_digit)
+#define PL_utf8_graph          (vTHX->Iutf8_graph)
+#define PL_utf8_idcont         (vTHX->Iutf8_idcont)
+#define PL_utf8_idstart                (vTHX->Iutf8_idstart)
+#define PL_utf8_lower          (vTHX->Iutf8_lower)
+#define PL_utf8_mark           (vTHX->Iutf8_mark)
+#define PL_utf8_print          (vTHX->Iutf8_print)
+#define PL_utf8_punct          (vTHX->Iutf8_punct)
+#define PL_utf8_space          (vTHX->Iutf8_space)
+#define PL_utf8_tofold         (vTHX->Iutf8_tofold)
+#define PL_utf8_tolower                (vTHX->Iutf8_tolower)
+#define PL_utf8_totitle                (vTHX->Iutf8_totitle)
+#define PL_utf8_toupper                (vTHX->Iutf8_toupper)
+#define PL_utf8_upper          (vTHX->Iutf8_upper)
+#define PL_utf8_xdigit         (vTHX->Iutf8_xdigit)
+#define PL_utf8cache           (vTHX->Iutf8cache)
+#define PL_utf8locale          (vTHX->Iutf8locale)
+#define PL_warnhook            (vTHX->Iwarnhook)
+#define PL_watchaddr           (vTHX->Iwatchaddr)
+#define PL_watchok             (vTHX->Iwatchok)
+#define PL_xmlfp               (vTHX->Ixmlfp)
 
 #else  /* !MULTIPLICITY */
 
-#define IArgv                  PL_Argv
-#define ICmd                   PL_Cmd
-#define IDBcv                  PL_DBcv
-#define IDBgv                  PL_DBgv
-#define IDBline                        PL_DBline
-#define IDBsignal              PL_DBsignal
-#define IDBsingle              PL_DBsingle
-#define IDBsub                 PL_DBsub
-#define IDBtrace               PL_DBtrace
-#define Iampergv               PL_ampergv
-#define Iarchpat_auto          PL_archpat_auto
-#define Iargvgv                        PL_argvgv
-#define Iargvoutgv             PL_argvoutgv
-#define Ibasetime              PL_basetime
-#define Ibeginav               PL_beginav
-#define Icddir                 PL_cddir
-#define Icompcv                        PL_compcv
-#define Icompiling             PL_compiling
-#define Icomppad               PL_comppad
-#define Icomppad_name          PL_comppad_name
-#define Icomppad_name_fill     PL_comppad_name_fill
-#define Icomppad_name_floor    PL_comppad_name_floor
-#define Icopline               PL_copline
-#define Icurcopdb              PL_curcopdb
-#define Icurstname             PL_curstname
-#define Idbargs                        PL_dbargs
-#define Idebdelim              PL_debdelim
-#define Idebname               PL_debname
-#define Idebstash              PL_debstash
-#define Idefgv                 PL_defgv
-#define Idiehook               PL_diehook
-#define Idlevel                        PL_dlevel
-#define Idlmax                 PL_dlmax
-#define Idoextract             PL_doextract
-#define Idoswitches            PL_doswitches
-#define Idowarn                        PL_dowarn
-#define Idumplvl               PL_dumplvl
-#define Ie_script              PL_e_script
-#define Iendav                 PL_endav
-#define Ienvgv                 PL_envgv
-#define Ierrgv                 PL_errgv
-#define Ieval_root             PL_eval_root
-#define Ieval_start            PL_eval_start
-#define Iexitlist              PL_exitlist
-#define Iexitlistlen           PL_exitlistlen
-#define Ifdpid                 PL_fdpid
-#define Ifilemode              PL_filemode
-#define Iforkprocess           PL_forkprocess
-#define Iformfeed              PL_formfeed
-#define Igeneration            PL_generation
-#define Igensym                        PL_gensym
-#define Iglobalstash           PL_globalstash
-#define Ihintgv                        PL_hintgv
-#define Iin_clean_all          PL_in_clean_all
-#define Iin_clean_objs         PL_in_clean_objs
-#define Iincgv                 PL_incgv
-#define Iinitav                        PL_initav
-#define Iinplace               PL_inplace
-#define Ilast_proto            PL_last_proto
-#define Ilastfd                        PL_lastfd
-#define Ilastsize              PL_lastsize
-#define Ilastspbase            PL_lastspbase
-#define Ilaststatval           PL_laststatval
-#define Ilaststype             PL_laststype
-#define Ileftgv                        PL_leftgv
-#define Ilineary               PL_lineary
-#define Ilinestart             PL_linestart
-#define Ilocalpatches          PL_localpatches
-#define Imain_cv               PL_main_cv
-#define Imain_root             PL_main_root
-#define Imain_start            PL_main_start
-#define Imaxsysfd              PL_maxsysfd
-#define Imess_sv               PL_mess_sv
-#define Iminus_F               PL_minus_F
-#define Iminus_a               PL_minus_a
-#define Iminus_c               PL_minus_c
-#define Iminus_l               PL_minus_l
-#define Iminus_n               PL_minus_n
-#define Iminus_p               PL_minus_p
-#define Imodglobal             PL_modglobal
-#define Imultiline             PL_multiline
-#define Imystrk                        PL_mystrk
-#define Iofmt                  PL_ofmt
-#define Ioldlastpm             PL_oldlastpm
-#define Ioldname               PL_oldname
-#define Iop_mask               PL_op_mask
-#define Iorigargc              PL_origargc
-#define Iorigargv              PL_origargv
-#define Iorigfilename          PL_origfilename
-#define Iors                   PL_ors
-#define Iorslen                        PL_orslen
-#define Iparsehook             PL_parsehook
-#define Ipatchlevel            PL_patchlevel
-#define Ipending_ident         PL_pending_ident
-#define Iperl_destruct_level   PL_perl_destruct_level
-#define Iperldb                        PL_perldb
-#define Ipreambleav            PL_preambleav
-#define Ipreambled             PL_preambled
-#define Ipreprocess            PL_preprocess
-#define Iprofiledata           PL_profiledata
-#define Ireplgv                        PL_replgv
-#define Irightgv               PL_rightgv
-#define Irsfp                  PL_rsfp
-#define Irsfp_filters          PL_rsfp_filters
-#define Isawampersand          PL_sawampersand
-#define Isawstudy              PL_sawstudy
-#define Isawvec                        PL_sawvec
-#define Isiggv                 PL_siggv
-#define Isplitstr              PL_splitstr
-#define Istatusvalue           PL_statusvalue
-#define Istatusvalue_vms       PL_statusvalue_vms
-#define Istdingv               PL_stdingv
-#define Istrchop               PL_strchop
-#define Istrtab                        PL_strtab
-#define Isub_generation                PL_sub_generation
-#define Isublex_info           PL_sublex_info
-#define Isv_arenaroot          PL_sv_arenaroot
-#define Isv_count              PL_sv_count
-#define Isv_objcount           PL_sv_objcount
-#define Isv_root               PL_sv_root
-#define Isys_intern            PL_sys_intern
-#define Itainting              PL_tainting
-#define Ithreadnum             PL_threadnum
-#define Ithrsv                 PL_thrsv
-#define Iunsafe                        PL_unsafe
-#define Iwarnhook              PL_warnhook
-
-#ifndef USE_THREADS
-
-#define TSv                    PL_Sv
-#define TXpv                   PL_Xpv
-#define Tav_fetch_sv           PL_av_fetch_sv
-#define Tbodytarget            PL_bodytarget
-#define Tbostr                 PL_bostr
-#define Tchopset               PL_chopset
-#define Tcolors                        PL_colors
-#define Tcolorset              PL_colorset
-#define Tcurcop                        PL_curcop
-#define Tcurpad                        PL_curpad
-#define Tcurpm                 PL_curpm
-#define Tcurstack              PL_curstack
-#define Tcurstackinfo          PL_curstackinfo
-#define Tcurstash              PL_curstash
-#define Tdefoutgv              PL_defoutgv
-#define Tdefstash              PL_defstash
-#define Tdelaymagic            PL_delaymagic
-#define Tdirty                 PL_dirty
-#define Textralen              PL_extralen
-#define Tfirstgv               PL_firstgv
-#define Tformtarget            PL_formtarget
-#define Thv_fetch_ent_mh       PL_hv_fetch_ent_mh
-#define Thv_fetch_sv           PL_hv_fetch_sv
-#define Tin_eval               PL_in_eval
-#define Tlast_in_gv            PL_last_in_gv
-#define Tlastgotoprobe         PL_lastgotoprobe
-#define Tlastscream            PL_lastscream
-#define Tlocalizing            PL_localizing
-#define Tmainstack             PL_mainstack
-#define Tmarkstack             PL_markstack
-#define Tmarkstack_max         PL_markstack_max
-#define Tmarkstack_ptr         PL_markstack_ptr
-#define Tmaxscream             PL_maxscream
-#define Tmodcount              PL_modcount
-#define Tnrs                   PL_nrs
-#define Tofs                   PL_ofs
-#define Tofslen                        PL_ofslen
-#define Top                    PL_op
-#define Topsave                        PL_opsave
-#define Treg_eval_set          PL_reg_eval_set
-#define Treg_flags             PL_reg_flags
-#define Treg_start_tmp         PL_reg_start_tmp
-#define Treg_start_tmpl                PL_reg_start_tmpl
-#define Tregbol                        PL_regbol
-#define Tregcc                 PL_regcc
-#define Tregcode               PL_regcode
-#define Tregcomp_parse         PL_regcomp_parse
-#define Tregcomp_rx            PL_regcomp_rx
-#define Tregcompp              PL_regcompp
-#define Tregdata               PL_regdata
-#define Tregdummy              PL_regdummy
-#define Tregendp               PL_regendp
-#define Tregeol                        PL_regeol
-#define Tregexecp              PL_regexecp
-#define Tregflags              PL_regflags
-#define Tregindent             PL_regindent
-#define Treginput              PL_reginput
-#define Treginterp_cnt         PL_reginterp_cnt
-#define Treglastparen          PL_reglastparen
-#define Tregnarrate            PL_regnarrate
-#define Tregnaughty            PL_regnaughty
-#define Tregnpar               PL_regnpar
-#define Tregprecomp            PL_regprecomp
-#define Tregprev               PL_regprev
-#define Tregprogram            PL_regprogram
-#define Tregsawback            PL_regsawback
-#define Tregseen               PL_regseen
-#define Tregsize               PL_regsize
-#define Tregstartp             PL_regstartp
-#define Tregtill               PL_regtill
-#define Tregxend               PL_regxend
-#define Trestartop             PL_restartop
-#define Tretstack              PL_retstack
-#define Tretstack_ix           PL_retstack_ix
-#define Tretstack_max          PL_retstack_max
-#define Trs                    PL_rs
-#define Tsavestack             PL_savestack
-#define Tsavestack_ix          PL_savestack_ix
-#define Tsavestack_max         PL_savestack_max
-#define Tscopestack            PL_scopestack
-#define Tscopestack_ix         PL_scopestack_ix
-#define Tscopestack_max                PL_scopestack_max
-#define Tscreamfirst           PL_screamfirst
-#define Tscreamnext            PL_screamnext
-#define Tsecondgv              PL_secondgv
-#define Tseen_evals            PL_seen_evals
-#define Tseen_zerolen          PL_seen_zerolen
-#define Tsortcop               PL_sortcop
-#define Tsortcxix              PL_sortcxix
-#define Tsortstash             PL_sortstash
-#define Tstack_base            PL_stack_base
-#define Tstack_max             PL_stack_max
-#define Tstack_sp              PL_stack_sp
-#define Tstart_env             PL_start_env
-#define Tstatbuf               PL_statbuf
-#define Tstatcache             PL_statcache
-#define Tstatgv                        PL_statgv
-#define Tstatname              PL_statname
-#define Ttainted               PL_tainted
-#define Ttimesbuf              PL_timesbuf
-#define Ttmps_floor            PL_tmps_floor
-#define Ttmps_ix               PL_tmps_ix
-#define Ttmps_max              PL_tmps_max
-#define Ttmps_stack            PL_tmps_stack
-#define Ttop_env               PL_top_env
-#define Ttoptarget             PL_toptarget
-
-#endif /* USE_THREADS */
-
-/* Hide what would have been interpreter-specific symbols? */
-
-#ifdef EMBED
-
-
-#ifndef USE_THREADS
-
-
-#endif /* USE_THREADS */
-#endif /* EMBED */
-#endif /* MULTIPLICITY */
-
-/* Now same trickey for per-thread variables */
-
-#ifdef USE_THREADS
-
-#define PL_Sv                  (thr->TSv)
-#define PL_Xpv                 (thr->TXpv)
-#define PL_av_fetch_sv         (thr->Tav_fetch_sv)
-#define PL_bodytarget          (thr->Tbodytarget)
-#define PL_bostr               (thr->Tbostr)
-#define PL_chopset             (thr->Tchopset)
-#define PL_colors              (thr->Tcolors)
-#define PL_colorset            (thr->Tcolorset)
-#define PL_curcop              (thr->Tcurcop)
-#define PL_curpad              (thr->Tcurpad)
-#define PL_curpm               (thr->Tcurpm)
-#define PL_curstack            (thr->Tcurstack)
-#define PL_curstackinfo                (thr->Tcurstackinfo)
-#define PL_curstash            (thr->Tcurstash)
-#define PL_defoutgv            (thr->Tdefoutgv)
-#define PL_defstash            (thr->Tdefstash)
-#define PL_delaymagic          (thr->Tdelaymagic)
-#define PL_dirty               (thr->Tdirty)
-#define PL_extralen            (thr->Textralen)
-#define PL_firstgv             (thr->Tfirstgv)
-#define PL_formtarget          (thr->Tformtarget)
-#define PL_hv_fetch_ent_mh     (thr->Thv_fetch_ent_mh)
-#define PL_hv_fetch_sv         (thr->Thv_fetch_sv)
-#define PL_in_eval             (thr->Tin_eval)
-#define PL_last_in_gv          (thr->Tlast_in_gv)
-#define PL_lastgotoprobe       (thr->Tlastgotoprobe)
-#define PL_lastscream          (thr->Tlastscream)
-#define PL_localizing          (thr->Tlocalizing)
-#define PL_mainstack           (thr->Tmainstack)
-#define PL_markstack           (thr->Tmarkstack)
-#define PL_markstack_max       (thr->Tmarkstack_max)
-#define PL_markstack_ptr       (thr->Tmarkstack_ptr)
-#define PL_maxscream           (thr->Tmaxscream)
-#define PL_modcount            (thr->Tmodcount)
-#define PL_nrs                 (thr->Tnrs)
-#define PL_ofs                 (thr->Tofs)
-#define PL_ofslen              (thr->Tofslen)
-#define PL_op                  (thr->Top)
-#define PL_opsave              (thr->Topsave)
-#define PL_reg_eval_set                (thr->Treg_eval_set)
-#define PL_reg_flags           (thr->Treg_flags)
-#define PL_reg_start_tmp       (thr->Treg_start_tmp)
-#define PL_reg_start_tmpl      (thr->Treg_start_tmpl)
-#define PL_regbol              (thr->Tregbol)
-#define PL_regcc               (thr->Tregcc)
-#define PL_regcode             (thr->Tregcode)
-#define PL_regcomp_parse       (thr->Tregcomp_parse)
-#define PL_regcomp_rx          (thr->Tregcomp_rx)
-#define PL_regcompp            (thr->Tregcompp)
-#define PL_regdata             (thr->Tregdata)
-#define PL_regdummy            (thr->Tregdummy)
-#define PL_regendp             (thr->Tregendp)
-#define PL_regeol              (thr->Tregeol)
-#define PL_regexecp            (thr->Tregexecp)
-#define PL_regflags            (thr->Tregflags)
-#define PL_regindent           (thr->Tregindent)
-#define PL_reginput            (thr->Treginput)
-#define PL_reginterp_cnt       (thr->Treginterp_cnt)
-#define PL_reglastparen                (thr->Treglastparen)
-#define PL_regnarrate          (thr->Tregnarrate)
-#define PL_regnaughty          (thr->Tregnaughty)
-#define PL_regnpar             (thr->Tregnpar)
-#define PL_regprecomp          (thr->Tregprecomp)
-#define PL_regprev             (thr->Tregprev)
-#define PL_regprogram          (thr->Tregprogram)
-#define PL_regsawback          (thr->Tregsawback)
-#define PL_regseen             (thr->Tregseen)
-#define PL_regsize             (thr->Tregsize)
-#define PL_regstartp           (thr->Tregstartp)
-#define PL_regtill             (thr->Tregtill)
-#define PL_regxend             (thr->Tregxend)
-#define PL_restartop           (thr->Trestartop)
-#define PL_retstack            (thr->Tretstack)
-#define PL_retstack_ix         (thr->Tretstack_ix)
-#define PL_retstack_max                (thr->Tretstack_max)
-#define PL_rs                  (thr->Trs)
-#define PL_savestack           (thr->Tsavestack)
-#define PL_savestack_ix                (thr->Tsavestack_ix)
-#define PL_savestack_max       (thr->Tsavestack_max)
-#define PL_scopestack          (thr->Tscopestack)
-#define PL_scopestack_ix       (thr->Tscopestack_ix)
-#define PL_scopestack_max      (thr->Tscopestack_max)
-#define PL_screamfirst         (thr->Tscreamfirst)
-#define PL_screamnext          (thr->Tscreamnext)
-#define PL_secondgv            (thr->Tsecondgv)
-#define PL_seen_evals          (thr->Tseen_evals)
-#define PL_seen_zerolen                (thr->Tseen_zerolen)
-#define PL_sortcop             (thr->Tsortcop)
-#define PL_sortcxix            (thr->Tsortcxix)
-#define PL_sortstash           (thr->Tsortstash)
-#define PL_stack_base          (thr->Tstack_base)
-#define PL_stack_max           (thr->Tstack_max)
-#define PL_stack_sp            (thr->Tstack_sp)
-#define PL_start_env           (thr->Tstart_env)
-#define PL_statbuf             (thr->Tstatbuf)
-#define PL_statcache           (thr->Tstatcache)
-#define PL_statgv              (thr->Tstatgv)
-#define PL_statname            (thr->Tstatname)
-#define PL_tainted             (thr->Ttainted)
-#define PL_timesbuf            (thr->Ttimesbuf)
-#define PL_tmps_floor          (thr->Ttmps_floor)
-#define PL_tmps_ix             (thr->Ttmps_ix)
-#define PL_tmps_max            (thr->Ttmps_max)
-#define PL_tmps_stack          (thr->Ttmps_stack)
-#define PL_top_env             (thr->Ttop_env)
-#define PL_toptarget           (thr->Ttoptarget)
-
-#endif /* USE_THREADS */
-
-#ifdef PERL_GLOBAL_STRUCT
-
-#define PL_No                  (Perl_Vars.GNo)
-#define PL_Yes                 (Perl_Vars.GYes)
-#define PL_amagic_generation   (Perl_Vars.Gamagic_generation)
-#define PL_an                  (Perl_Vars.Gan)
-#define PL_bufend              (Perl_Vars.Gbufend)
-#define PL_bufptr              (Perl_Vars.Gbufptr)
-#define PL_collation_ix                (Perl_Vars.Gcollation_ix)
-#define PL_collation_name      (Perl_Vars.Gcollation_name)
-#define PL_collation_standard  (Perl_Vars.Gcollation_standard)
-#define PL_collxfrm_base       (Perl_Vars.Gcollxfrm_base)
-#define PL_collxfrm_mult       (Perl_Vars.Gcollxfrm_mult)
-#define PL_cop_seqmax          (Perl_Vars.Gcop_seqmax)
-#define PL_cryptseen           (Perl_Vars.Gcryptseen)
-#define PL_cshlen              (Perl_Vars.Gcshlen)
-#define PL_cshname             (Perl_Vars.Gcshname)
-#define PL_curinterp           (Perl_Vars.Gcurinterp)
-#define PL_curthr              (Perl_Vars.Gcurthr)
-#define PL_debug               (Perl_Vars.Gdebug)
-#define PL_do_undump           (Perl_Vars.Gdo_undump)
-#define PL_egid                        (Perl_Vars.Gegid)
-#define PL_error_count         (Perl_Vars.Gerror_count)
-#define PL_euid                        (Perl_Vars.Geuid)
-#define PL_eval_cond           (Perl_Vars.Geval_cond)
-#define PL_eval_mutex          (Perl_Vars.Geval_mutex)
-#define PL_eval_owner          (Perl_Vars.Geval_owner)
-#define PL_evalseq             (Perl_Vars.Gevalseq)
-#define PL_expect              (Perl_Vars.Gexpect)
-#define PL_gid                 (Perl_Vars.Ggid)
-#define PL_he_root             (Perl_Vars.Ghe_root)
-#define PL_hexdigit            (Perl_Vars.Ghexdigit)
-#define PL_hints               (Perl_Vars.Ghints)
-#define PL_in_my               (Perl_Vars.Gin_my)
-#define PL_in_my_stash         (Perl_Vars.Gin_my_stash)
-#define PL_last_lop            (Perl_Vars.Glast_lop)
-#define PL_last_lop_op         (Perl_Vars.Glast_lop_op)
-#define PL_last_uni            (Perl_Vars.Glast_uni)
-#define PL_lex_brackets                (Perl_Vars.Glex_brackets)
-#define PL_lex_brackstack      (Perl_Vars.Glex_brackstack)
-#define PL_lex_casemods                (Perl_Vars.Glex_casemods)
-#define PL_lex_casestack       (Perl_Vars.Glex_casestack)
-#define PL_lex_defer           (Perl_Vars.Glex_defer)
-#define PL_lex_dojoin          (Perl_Vars.Glex_dojoin)
-#define PL_lex_expect          (Perl_Vars.Glex_expect)
-#define PL_lex_fakebrack       (Perl_Vars.Glex_fakebrack)
-#define PL_lex_formbrack       (Perl_Vars.Glex_formbrack)
-#define PL_lex_inpat           (Perl_Vars.Glex_inpat)
-#define PL_lex_inwhat          (Perl_Vars.Glex_inwhat)
-#define PL_lex_op              (Perl_Vars.Glex_op)
-#define PL_lex_repl            (Perl_Vars.Glex_repl)
-#define PL_lex_starts          (Perl_Vars.Glex_starts)
-#define PL_lex_state           (Perl_Vars.Glex_state)
-#define PL_lex_stuff           (Perl_Vars.Glex_stuff)
-#define PL_linestr             (Perl_Vars.Glinestr)
-#define PL_malloc_mutex                (Perl_Vars.Gmalloc_mutex)
-#define PL_max_intro_pending   (Perl_Vars.Gmax_intro_pending)
-#define PL_maxo                        (Perl_Vars.Gmaxo)
-#define PL_min_intro_pending   (Perl_Vars.Gmin_intro_pending)
-#define PL_multi_close         (Perl_Vars.Gmulti_close)
-#define PL_multi_end           (Perl_Vars.Gmulti_end)
-#define PL_multi_open          (Perl_Vars.Gmulti_open)
-#define PL_multi_start         (Perl_Vars.Gmulti_start)
-#define PL_na                  (Perl_Vars.Gna)
-#define PL_nexttoke            (Perl_Vars.Gnexttoke)
-#define PL_nexttype            (Perl_Vars.Gnexttype)
-#define PL_nextval             (Perl_Vars.Gnextval)
-#define PL_nice_chunk          (Perl_Vars.Gnice_chunk)
-#define PL_nice_chunk_size     (Perl_Vars.Gnice_chunk_size)
-#define PL_ninterps            (Perl_Vars.Gninterps)
-#define PL_nomemok             (Perl_Vars.Gnomemok)
-#define PL_nthreads            (Perl_Vars.Gnthreads)
-#define PL_nthreads_cond       (Perl_Vars.Gnthreads_cond)
-#define PL_numeric_local       (Perl_Vars.Gnumeric_local)
-#define PL_numeric_name                (Perl_Vars.Gnumeric_name)
-#define PL_numeric_standard    (Perl_Vars.Gnumeric_standard)
-#define PL_oldbufptr           (Perl_Vars.Goldbufptr)
-#define PL_oldoldbufptr                (Perl_Vars.Goldoldbufptr)
-#define PL_op_seqmax           (Perl_Vars.Gop_seqmax)
-#define PL_origalen            (Perl_Vars.Gorigalen)
-#define PL_origenviron         (Perl_Vars.Gorigenviron)
-#define PL_osname              (Perl_Vars.Gosname)
-#define PL_pad_reset_pending   (Perl_Vars.Gpad_reset_pending)
-#define PL_padix               (Perl_Vars.Gpadix)
-#define PL_padix_floor         (Perl_Vars.Gpadix_floor)
-#define PL_patleave            (Perl_Vars.Gpatleave)
-#define PL_pidstatus           (Perl_Vars.Gpidstatus)
-#define PL_runops              (Perl_Vars.Grunops)
-#define PL_sh_path             (Perl_Vars.Gsh_path)
-#define PL_sighandlerp         (Perl_Vars.Gsighandlerp)
-#define PL_specialsv_list      (Perl_Vars.Gspecialsv_list)
-#define PL_subline             (Perl_Vars.Gsubline)
-#define PL_subname             (Perl_Vars.Gsubname)
-#define PL_sv_mutex            (Perl_Vars.Gsv_mutex)
-#define PL_sv_no               (Perl_Vars.Gsv_no)
-#define PL_sv_undef            (Perl_Vars.Gsv_undef)
-#define PL_sv_yes              (Perl_Vars.Gsv_yes)
-#define PL_svref_mutex         (Perl_Vars.Gsvref_mutex)
-#define PL_thisexpr            (Perl_Vars.Gthisexpr)
-#define PL_thr_key             (Perl_Vars.Gthr_key)
-#define PL_threads_mutex       (Perl_Vars.Gthreads_mutex)
-#define PL_threadsv_names      (Perl_Vars.Gthreadsv_names)
-#define PL_tokenbuf            (Perl_Vars.Gtokenbuf)
-#define PL_uid                 (Perl_Vars.Guid)
-#define PL_xiv_arenaroot       (Perl_Vars.Gxiv_arenaroot)
-#define PL_xiv_root            (Perl_Vars.Gxiv_root)
-#define PL_xnv_root            (Perl_Vars.Gxnv_root)
-#define PL_xpv_root            (Perl_Vars.Gxpv_root)
-#define PL_xrv_root            (Perl_Vars.Gxrv_root)
+/* case 1 above */
+
+#define PL_IArgv               PL_Argv
+#define PL_ICmd                        PL_Cmd
+#define PL_IDBassertion                PL_DBassertion
+#define PL_IDBcv               PL_DBcv
+#define PL_IDBgv               PL_DBgv
+#define PL_IDBline             PL_DBline
+#define PL_IDBsignal           PL_DBsignal
+#define PL_IDBsingle           PL_DBsingle
+#define PL_IDBsub              PL_DBsub
+#define PL_IDBtrace            PL_DBtrace
+#define PL_IDir                        PL_Dir
+#define PL_IEnv                        PL_Env
+#define PL_ILIO                        PL_LIO
+#define PL_IMem                        PL_Mem
+#define PL_IMemParse           PL_MemParse
+#define PL_IMemShared          PL_MemShared
+#define PL_IOpPtr              PL_OpPtr
+#define PL_IOpSlab             PL_OpSlab
+#define PL_IOpSpace            PL_OpSpace
+#define PL_IProc               PL_Proc
+#define PL_ISock               PL_Sock
+#define PL_IStdIO              PL_StdIO
+#define PL_ISv                 PL_Sv
+#define PL_IXpv                        PL_Xpv
+#define PL_Iamagic_generation  PL_amagic_generation
+#define PL_Ian                 PL_an
+#define PL_Iargvgv             PL_argvgv
+#define PL_Iargvout_stack      PL_argvout_stack
+#define PL_Iargvoutgv          PL_argvoutgv
+#define PL_Ibasetime           PL_basetime
+#define PL_Ibeginav            PL_beginav
+#define PL_Ibeginav_save       PL_beginav_save
+#define PL_Ibitcount           PL_bitcount
+#define PL_Ibody_arenas                PL_body_arenas
+#define PL_Ibody_roots         PL_body_roots
+#define PL_Ibodytarget         PL_bodytarget
+#define PL_Icheckav            PL_checkav
+#define PL_Icheckav_save       PL_checkav_save
+#define PL_Ichopset            PL_chopset
+#define PL_Iclocktick          PL_clocktick
+#define PL_Icollation_ix       PL_collation_ix
+#define PL_Icollation_name     PL_collation_name
+#define PL_Icollation_standard PL_collation_standard
+#define PL_Icollxfrm_base      PL_collxfrm_base
+#define PL_Icollxfrm_mult      PL_collxfrm_mult
+#define PL_Icolors             PL_colors
+#define PL_Icolorset           PL_colorset
+#define PL_Icompcv             PL_compcv
+#define PL_Icompiling          PL_compiling
+#define PL_Icomppad            PL_comppad
+#define PL_Icomppad_name       PL_comppad_name
+#define PL_Icomppad_name_fill  PL_comppad_name_fill
+#define PL_Icomppad_name_floor PL_comppad_name_floor
+#define PL_Icop_seqmax         PL_cop_seqmax
+#define PL_Icryptseen          PL_cryptseen
+#define PL_Icurcop             PL_curcop
+#define PL_Icurcopdb           PL_curcopdb
+#define PL_Icurpad             PL_curpad
+#define PL_Icurpm              PL_curpm
+#define PL_Icurstack           PL_curstack
+#define PL_Icurstackinfo       PL_curstackinfo
+#define PL_Icurstash           PL_curstash
+#define PL_Icurstname          PL_curstname
+#define PL_Icustom_op_descs    PL_custom_op_descs
+#define PL_Icustom_op_names    PL_custom_op_names
+#define PL_Icv_has_eval                PL_cv_has_eval
+#define PL_Idbargs             PL_dbargs
+#define PL_Idebstash           PL_debstash
+#define PL_Idebug              PL_debug
+#define PL_Idebug_pad          PL_debug_pad
+#define PL_Idef_layerlist      PL_def_layerlist
+#define PL_Idefgv              PL_defgv
+#define PL_Idefoutgv           PL_defoutgv
+#define PL_Idefstash           PL_defstash
+#define PL_Idelaymagic         PL_delaymagic
+#define PL_Idiehook            PL_diehook
+#define PL_Idirty              PL_dirty
+#define PL_Idoextract          PL_doextract
+#define PL_Idoswitches         PL_doswitches
+#define PL_Idowarn             PL_dowarn
+#define PL_Idumper_fd          PL_dumper_fd
+#define PL_Idumpindent         PL_dumpindent
+#define PL_Ie_script           PL_e_script
+#define PL_Iefloatbuf          PL_efloatbuf
+#define PL_Iefloatsize         PL_efloatsize
+#define PL_Iegid               PL_egid
+#define PL_Iencoding           PL_encoding
+#define PL_Iendav              PL_endav
+#define PL_Ienvgv              PL_envgv
+#define PL_Ierrgv              PL_errgv
+#define PL_Ierrors             PL_errors
+#define PL_Ieuid               PL_euid
+#define PL_Ieval_root          PL_eval_root
+#define PL_Ieval_start         PL_eval_start
+#define PL_Ievalseq            PL_evalseq
+#define PL_Iexit_flags         PL_exit_flags
+#define PL_Iexitlist           PL_exitlist
+#define PL_Iexitlistlen                PL_exitlistlen
+#define PL_Ifdpid              PL_fdpid
+#define PL_Ifilemode           PL_filemode
+#define PL_Ifirstgv            PL_firstgv
+#define PL_Iforkprocess                PL_forkprocess
+#define PL_Iformfeed           PL_formfeed
+#define PL_Iformtarget         PL_formtarget
+#define PL_Igeneration         PL_generation
+#define PL_Igensym             PL_gensym
+#define PL_Igid                        PL_gid
+#define PL_Iglob_index         PL_glob_index
+#define PL_Iglobalstash                PL_globalstash
+#define PL_Ihash_seed          PL_hash_seed
+#define PL_Ihintgv             PL_hintgv
+#define PL_Ihints              PL_hints
+#define PL_Ihv_fetch_ent_mh    PL_hv_fetch_ent_mh
+#define PL_Iin_clean_all       PL_in_clean_all
+#define PL_Iin_clean_objs      PL_in_clean_objs
+#define PL_Iin_eval            PL_in_eval
+#define PL_Iin_load_module     PL_in_load_module
+#define PL_Iincgv              PL_incgv
+#define PL_Iinitav             PL_initav
+#define PL_Iinplace            PL_inplace
+#define PL_Iisarev             PL_isarev
+#define PL_Iknown_layers       PL_known_layers
+#define PL_Ilast_in_gv         PL_last_in_gv
+#define PL_Ilast_swash_hv      PL_last_swash_hv
+#define PL_Ilast_swash_key     PL_last_swash_key
+#define PL_Ilast_swash_klen    PL_last_swash_klen
+#define PL_Ilast_swash_slen    PL_last_swash_slen
+#define PL_Ilast_swash_tmps    PL_last_swash_tmps
+#define PL_Ilastfd             PL_lastfd
+#define PL_Ilastgotoprobe      PL_lastgotoprobe
+#define PL_Ilastscream         PL_lastscream
+#define PL_Ilaststatval                PL_laststatval
+#define PL_Ilaststype          PL_laststype
+#define PL_Ilocalizing         PL_localizing
+#define PL_Ilocalpatches       PL_localpatches
+#define PL_Ilockhook           PL_lockhook
+#define PL_Imadskills          PL_madskills
+#define PL_Imain_cv            PL_main_cv
+#define PL_Imain_root          PL_main_root
+#define PL_Imain_start         PL_main_start
+#define PL_Imainstack          PL_mainstack
+#define PL_Imarkstack          PL_markstack
+#define PL_Imarkstack_max      PL_markstack_max
+#define PL_Imarkstack_ptr      PL_markstack_ptr
+#define PL_Imax_intro_pending  PL_max_intro_pending
+#define PL_Imaxo               PL_maxo
+#define PL_Imaxscream          PL_maxscream
+#define PL_Imaxsysfd           PL_maxsysfd
+#define PL_Imemory_debug_header        PL_memory_debug_header
+#define PL_Imess_sv            PL_mess_sv
+#define PL_Imin_intro_pending  PL_min_intro_pending
+#define PL_Iminus_E            PL_minus_E
+#define PL_Iminus_F            PL_minus_F
+#define PL_Iminus_a            PL_minus_a
+#define PL_Iminus_c            PL_minus_c
+#define PL_Iminus_l            PL_minus_l
+#define PL_Iminus_n            PL_minus_n
+#define PL_Iminus_p            PL_minus_p
+#define PL_Imodcount           PL_modcount
+#define PL_Imodglobal          PL_modglobal
+#define PL_Imy_cxt_keys                PL_my_cxt_keys
+#define PL_Imy_cxt_list                PL_my_cxt_list
+#define PL_Imy_cxt_size                PL_my_cxt_size
+#define PL_Ina                 PL_na
+#define PL_Inice_chunk         PL_nice_chunk
+#define PL_Inice_chunk_size    PL_nice_chunk_size
+#define PL_Inomemok            PL_nomemok
+#define PL_Inumeric_local      PL_numeric_local
+#define PL_Inumeric_name       PL_numeric_name
+#define PL_Inumeric_radix_sv   PL_numeric_radix_sv
+#define PL_Inumeric_standard   PL_numeric_standard
+#define PL_Iofs_sv             PL_ofs_sv
+#define PL_Ioldname            PL_oldname
+#define PL_Iop                 PL_op
+#define PL_Iop_mask            PL_op_mask
+#define PL_Iopsave             PL_opsave
+#define PL_Iorigalen           PL_origalen
+#define PL_Iorigargc           PL_origargc
+#define PL_Iorigargv           PL_origargv
+#define PL_Iorigenviron                PL_origenviron
+#define PL_Iorigfilename       PL_origfilename
+#define PL_Iors_sv             PL_ors_sv
+#define PL_Iosname             PL_osname
+#define PL_Ipad_reset_pending  PL_pad_reset_pending
+#define PL_Ipadix              PL_padix
+#define PL_Ipadix_floor                PL_padix_floor
+#define PL_Iparser             PL_parser
+#define PL_Ipatchlevel         PL_patchlevel
+#define PL_Ipeepp              PL_peepp
+#define PL_Iperl_destruct_level        PL_perl_destruct_level
+#define PL_Iperldb             PL_perldb
+#define PL_Iperlio             PL_perlio
+#define PL_Ipidstatus          PL_pidstatus
+#define PL_Ippid               PL_ppid
+#define PL_Ipreambleav         PL_preambleav
+#define PL_Ipreprocess         PL_preprocess
+#define PL_Iprofiledata                PL_profiledata
+#define PL_Ipsig_name          PL_psig_name
+#define PL_Ipsig_pend          PL_psig_pend
+#define PL_Ipsig_ptr           PL_psig_ptr
+#define PL_Iptr_table          PL_ptr_table
+#define PL_Ireentrant_buffer   PL_reentrant_buffer
+#define PL_Ireentrant_retint   PL_reentrant_retint
+#define PL_Ireg_state          PL_reg_state
+#define PL_Iregdummy           PL_regdummy
+#define PL_Iregex_pad          PL_regex_pad
+#define PL_Iregex_padav                PL_regex_padav
+#define PL_Ireginterp_cnt      PL_reginterp_cnt
+#define PL_Iregmatch_slab      PL_regmatch_slab
+#define PL_Iregmatch_state     PL_regmatch_state
+#define PL_Irehash_seed                PL_rehash_seed
+#define PL_Irehash_seed_set    PL_rehash_seed_set
+#define PL_Ireplgv             PL_replgv
+#define PL_Irestartop          PL_restartop
+#define PL_Irs                 PL_rs
+#define PL_Irunops             PL_runops
+#define PL_Isavebegin          PL_savebegin
+#define PL_Isavestack          PL_savestack
+#define PL_Isavestack_ix       PL_savestack_ix
+#define PL_Isavestack_max      PL_savestack_max
+#define PL_Isawampersand       PL_sawampersand
+#define PL_Iscopestack         PL_scopestack
+#define PL_Iscopestack_ix      PL_scopestack_ix
+#define PL_Iscopestack_max     PL_scopestack_max
+#define PL_Iscreamfirst                PL_screamfirst
+#define PL_Iscreamnext         PL_screamnext
+#define PL_Isecondgv           PL_secondgv
+#define PL_Isharehook          PL_sharehook
+#define PL_Isig_pending                PL_sig_pending
+#define PL_Isighandlerp                PL_sighandlerp
+#define PL_Isignals            PL_signals
+#define PL_Islab_count         PL_slab_count
+#define PL_Islabs              PL_slabs
+#define PL_Isort_RealCmp       PL_sort_RealCmp
+#define PL_Isortcop            PL_sortcop
+#define PL_Isortstash          PL_sortstash
+#define PL_Isplitstr           PL_splitstr
+#define PL_Isrand_called       PL_srand_called
+#define PL_Istack_base         PL_stack_base
+#define PL_Istack_max          PL_stack_max
+#define PL_Istack_sp           PL_stack_sp
+#define PL_Istart_env          PL_start_env
+#define PL_Istashcache         PL_stashcache
+#define PL_Istatbuf            PL_statbuf
+#define PL_Istatcache          PL_statcache
+#define PL_Istatgv             PL_statgv
+#define PL_Istatname           PL_statname
+#define PL_Istatusvalue                PL_statusvalue
+#define PL_Istatusvalue_posix  PL_statusvalue_posix
+#define PL_Istatusvalue_vms    PL_statusvalue_vms
+#define PL_Istderrgv           PL_stderrgv
+#define PL_Istdingv            PL_stdingv
+#define PL_Istrtab             PL_strtab
+#define PL_Isub_generation     PL_sub_generation
+#define PL_Isubline            PL_subline
+#define PL_Isubname            PL_subname
+#define PL_Isv_arenaroot       PL_sv_arenaroot
+#define PL_Isv_count           PL_sv_count
+#define PL_Isv_no              PL_sv_no
+#define PL_Isv_objcount                PL_sv_objcount
+#define PL_Isv_root            PL_sv_root
+#define PL_Isv_undef           PL_sv_undef
+#define PL_Isv_yes             PL_sv_yes
+#define PL_Isys_intern         PL_sys_intern
+#define PL_Itaint_warn         PL_taint_warn
+#define PL_Itainted            PL_tainted
+#define PL_Itainting           PL_tainting
+#define PL_Ithreadhook         PL_threadhook
+#define PL_Itimesbuf           PL_timesbuf
+#define PL_Itmps_floor         PL_tmps_floor
+#define PL_Itmps_ix            PL_tmps_ix
+#define PL_Itmps_max           PL_tmps_max
+#define PL_Itmps_stack         PL_tmps_stack
+#define PL_Itop_env            PL_top_env
+#define PL_Itoptarget          PL_toptarget
+#define PL_Iuid                        PL_uid
+#define PL_Iunicode            PL_unicode
+#define PL_Iunitcheckav                PL_unitcheckav
+#define PL_Iunitcheckav_save   PL_unitcheckav_save
+#define PL_Iunlockhook         PL_unlockhook
+#define PL_Iunsafe             PL_unsafe
+#define PL_Iutf8_alnum         PL_utf8_alnum
+#define PL_Iutf8_alnumc                PL_utf8_alnumc
+#define PL_Iutf8_alpha         PL_utf8_alpha
+#define PL_Iutf8_ascii         PL_utf8_ascii
+#define PL_Iutf8_cntrl         PL_utf8_cntrl
+#define PL_Iutf8_digit         PL_utf8_digit
+#define PL_Iutf8_graph         PL_utf8_graph
+#define PL_Iutf8_idcont                PL_utf8_idcont
+#define PL_Iutf8_idstart       PL_utf8_idstart
+#define PL_Iutf8_lower         PL_utf8_lower
+#define PL_Iutf8_mark          PL_utf8_mark
+#define PL_Iutf8_print         PL_utf8_print
+#define PL_Iutf8_punct         PL_utf8_punct
+#define PL_Iutf8_space         PL_utf8_space
+#define PL_Iutf8_tofold                PL_utf8_tofold
+#define PL_Iutf8_tolower       PL_utf8_tolower
+#define PL_Iutf8_totitle       PL_utf8_totitle
+#define PL_Iutf8_toupper       PL_utf8_toupper
+#define PL_Iutf8_upper         PL_utf8_upper
+#define PL_Iutf8_xdigit                PL_utf8_xdigit
+#define PL_Iutf8cache          PL_utf8cache
+#define PL_Iutf8locale         PL_utf8locale
+#define PL_Iwarnhook           PL_warnhook
+#define PL_Iwatchaddr          PL_watchaddr
+#define PL_Iwatchok            PL_watchok
+#define PL_Ixmlfp              PL_xmlfp
+
+
+#endif /* MULTIPLICITY */
+
+#if defined(PERL_GLOBAL_STRUCT)
+
+#define PL_No                  (my_vars->GNo)
+#define PL_GNo                 (my_vars->GNo)
+#define PL_Yes                 (my_vars->GYes)
+#define PL_GYes                        (my_vars->GYes)
+#define PL_appctx              (my_vars->Gappctx)
+#define PL_Gappctx             (my_vars->Gappctx)
+#define PL_check               (my_vars->Gcheck)
+#define PL_Gcheck              (my_vars->Gcheck)
+#define PL_csighandlerp                (my_vars->Gcsighandlerp)
+#define PL_Gcsighandlerp       (my_vars->Gcsighandlerp)
+#define PL_curinterp           (my_vars->Gcurinterp)
+#define PL_Gcurinterp          (my_vars->Gcurinterp)
+#define PL_do_undump           (my_vars->Gdo_undump)
+#define PL_Gdo_undump          (my_vars->Gdo_undump)
+#define PL_dollarzero_mutex    (my_vars->Gdollarzero_mutex)
+#define PL_Gdollarzero_mutex   (my_vars->Gdollarzero_mutex)
+#define PL_fold_locale         (my_vars->Gfold_locale)
+#define PL_Gfold_locale                (my_vars->Gfold_locale)
+#define PL_hexdigit            (my_vars->Ghexdigit)
+#define PL_Ghexdigit           (my_vars->Ghexdigit)
+#define PL_hints_mutex         (my_vars->Ghints_mutex)
+#define PL_Ghints_mutex                (my_vars->Ghints_mutex)
+#define PL_malloc_mutex                (my_vars->Gmalloc_mutex)
+#define PL_Gmalloc_mutex       (my_vars->Gmalloc_mutex)
+#define PL_mmap_page_size      (my_vars->Gmmap_page_size)
+#define PL_Gmmap_page_size     (my_vars->Gmmap_page_size)
+#define PL_my_ctx_mutex                (my_vars->Gmy_ctx_mutex)
+#define PL_Gmy_ctx_mutex       (my_vars->Gmy_ctx_mutex)
+#define PL_my_cxt_index                (my_vars->Gmy_cxt_index)
+#define PL_Gmy_cxt_index       (my_vars->Gmy_cxt_index)
+#define PL_op_mutex            (my_vars->Gop_mutex)
+#define PL_Gop_mutex           (my_vars->Gop_mutex)
+#define PL_op_seq              (my_vars->Gop_seq)
+#define PL_Gop_seq             (my_vars->Gop_seq)
+#define PL_op_sequence         (my_vars->Gop_sequence)
+#define PL_Gop_sequence                (my_vars->Gop_sequence)
+#define PL_patleave            (my_vars->Gpatleave)
+#define PL_Gpatleave           (my_vars->Gpatleave)
+#define PL_perlio_debug_fd     (my_vars->Gperlio_debug_fd)
+#define PL_Gperlio_debug_fd    (my_vars->Gperlio_debug_fd)
+#define PL_perlio_fd_refcnt    (my_vars->Gperlio_fd_refcnt)
+#define PL_Gperlio_fd_refcnt   (my_vars->Gperlio_fd_refcnt)
+#define PL_perlio_fd_refcnt_size       (my_vars->Gperlio_fd_refcnt_size)
+#define PL_Gperlio_fd_refcnt_size      (my_vars->Gperlio_fd_refcnt_size)
+#define PL_perlio_mutex                (my_vars->Gperlio_mutex)
+#define PL_Gperlio_mutex       (my_vars->Gperlio_mutex)
+#define PL_ppaddr              (my_vars->Gppaddr)
+#define PL_Gppaddr             (my_vars->Gppaddr)
+#define PL_runops_dbg          (my_vars->Grunops_dbg)
+#define PL_Grunops_dbg         (my_vars->Grunops_dbg)
+#define PL_runops_std          (my_vars->Grunops_std)
+#define PL_Grunops_std         (my_vars->Grunops_std)
+#define PL_sh_path             (my_vars->Gsh_path)
+#define PL_Gsh_path            (my_vars->Gsh_path)
+#define PL_sig_defaulting      (my_vars->Gsig_defaulting)
+#define PL_Gsig_defaulting     (my_vars->Gsig_defaulting)
+#define PL_sig_handlers_initted        (my_vars->Gsig_handlers_initted)
+#define PL_Gsig_handlers_initted       (my_vars->Gsig_handlers_initted)
+#define PL_sig_ignoring                (my_vars->Gsig_ignoring)
+#define PL_Gsig_ignoring       (my_vars->Gsig_ignoring)
+#define PL_sig_sv              (my_vars->Gsig_sv)
+#define PL_Gsig_sv             (my_vars->Gsig_sv)
+#define PL_sig_trapped         (my_vars->Gsig_trapped)
+#define PL_Gsig_trapped                (my_vars->Gsig_trapped)
+#define PL_sigfpe_saved                (my_vars->Gsigfpe_saved)
+#define PL_Gsigfpe_saved       (my_vars->Gsigfpe_saved)
+#define PL_sv_placeholder      (my_vars->Gsv_placeholder)
+#define PL_Gsv_placeholder     (my_vars->Gsv_placeholder)
+#define PL_thr_key             (my_vars->Gthr_key)
+#define PL_Gthr_key            (my_vars->Gthr_key)
+#define PL_timesbase           (my_vars->Gtimesbase)
+#define PL_Gtimesbase          (my_vars->Gtimesbase)
+#define PL_use_safe_putenv     (my_vars->Guse_safe_putenv)
+#define PL_Guse_safe_putenv    (my_vars->Guse_safe_putenv)
+#define PL_veto_cleanup                (my_vars->Gveto_cleanup)
+#define PL_Gveto_cleanup       (my_vars->Gveto_cleanup)
+#define PL_watch_pvx           (my_vars->Gwatch_pvx)
+#define PL_Gwatch_pvx          (my_vars->Gwatch_pvx)
 
 #else /* !PERL_GLOBAL_STRUCT */
 
-#define GNo                    PL_No
-#define GYes                   PL_Yes
-#define Gamagic_generation     PL_amagic_generation
-#define Gan                    PL_an
-#define Gbufend                        PL_bufend
-#define Gbufptr                        PL_bufptr
-#define Gcollation_ix          PL_collation_ix
-#define Gcollation_name                PL_collation_name
-#define Gcollation_standard    PL_collation_standard
-#define Gcollxfrm_base         PL_collxfrm_base
-#define Gcollxfrm_mult         PL_collxfrm_mult
-#define Gcop_seqmax            PL_cop_seqmax
-#define Gcryptseen             PL_cryptseen
-#define Gcshlen                        PL_cshlen
-#define Gcshname               PL_cshname
-#define Gcurinterp             PL_curinterp
-#define Gcurthr                        PL_curthr
-#define Gdebug                 PL_debug
-#define Gdo_undump             PL_do_undump
-#define Gegid                  PL_egid
-#define Gerror_count           PL_error_count
-#define Geuid                  PL_euid
-#define Geval_cond             PL_eval_cond
-#define Geval_mutex            PL_eval_mutex
-#define Geval_owner            PL_eval_owner
-#define Gevalseq               PL_evalseq
-#define Gexpect                        PL_expect
-#define Ggid                   PL_gid
-#define Ghe_root               PL_he_root
-#define Ghexdigit              PL_hexdigit
-#define Ghints                 PL_hints
-#define Gin_my                 PL_in_my
-#define Gin_my_stash           PL_in_my_stash
-#define Glast_lop              PL_last_lop
-#define Glast_lop_op           PL_last_lop_op
-#define Glast_uni              PL_last_uni
-#define Glex_brackets          PL_lex_brackets
-#define Glex_brackstack                PL_lex_brackstack
-#define Glex_casemods          PL_lex_casemods
-#define Glex_casestack         PL_lex_casestack
-#define Glex_defer             PL_lex_defer
-#define Glex_dojoin            PL_lex_dojoin
-#define Glex_expect            PL_lex_expect
-#define Glex_fakebrack         PL_lex_fakebrack
-#define Glex_formbrack         PL_lex_formbrack
-#define Glex_inpat             PL_lex_inpat
-#define Glex_inwhat            PL_lex_inwhat
-#define Glex_op                        PL_lex_op
-#define Glex_repl              PL_lex_repl
-#define Glex_starts            PL_lex_starts
-#define Glex_state             PL_lex_state
-#define Glex_stuff             PL_lex_stuff
-#define Glinestr               PL_linestr
-#define Gmalloc_mutex          PL_malloc_mutex
-#define Gmax_intro_pending     PL_max_intro_pending
-#define Gmaxo                  PL_maxo
-#define Gmin_intro_pending     PL_min_intro_pending
-#define Gmulti_close           PL_multi_close
-#define Gmulti_end             PL_multi_end
-#define Gmulti_open            PL_multi_open
-#define Gmulti_start           PL_multi_start
-#define Gna                    PL_na
-#define Gnexttoke              PL_nexttoke
-#define Gnexttype              PL_nexttype
-#define Gnextval               PL_nextval
-#define Gnice_chunk            PL_nice_chunk
-#define Gnice_chunk_size       PL_nice_chunk_size
-#define Gninterps              PL_ninterps
-#define Gnomemok               PL_nomemok
-#define Gnthreads              PL_nthreads
-#define Gnthreads_cond         PL_nthreads_cond
-#define Gnumeric_local         PL_numeric_local
-#define Gnumeric_name          PL_numeric_name
-#define Gnumeric_standard      PL_numeric_standard
-#define Goldbufptr             PL_oldbufptr
-#define Goldoldbufptr          PL_oldoldbufptr
-#define Gop_seqmax             PL_op_seqmax
-#define Gorigalen              PL_origalen
-#define Gorigenviron           PL_origenviron
-#define Gosname                        PL_osname
-#define Gpad_reset_pending     PL_pad_reset_pending
-#define Gpadix                 PL_padix
-#define Gpadix_floor           PL_padix_floor
-#define Gpatleave              PL_patleave
-#define Gpidstatus             PL_pidstatus
-#define Grunops                        PL_runops
-#define Gsh_path               PL_sh_path
-#define Gsighandlerp           PL_sighandlerp
-#define Gspecialsv_list                PL_specialsv_list
-#define Gsubline               PL_subline
-#define Gsubname               PL_subname
-#define Gsv_mutex              PL_sv_mutex
-#define Gsv_no                 PL_sv_no
-#define Gsv_undef              PL_sv_undef
-#define Gsv_yes                        PL_sv_yes
-#define Gsvref_mutex           PL_svref_mutex
-#define Gthisexpr              PL_thisexpr
-#define Gthr_key               PL_thr_key
-#define Gthreads_mutex         PL_threads_mutex
-#define Gthreadsv_names                PL_threadsv_names
-#define Gtokenbuf              PL_tokenbuf
-#define Guid                   PL_uid
-#define Gxiv_arenaroot         PL_xiv_arenaroot
-#define Gxiv_root              PL_xiv_root
-#define Gxnv_root              PL_xnv_root
-#define Gxpv_root              PL_xpv_root
-#define Gxrv_root              PL_xrv_root
-
-#ifdef EMBED
-
+#define PL_GNo                 PL_No
+#define PL_GYes                        PL_Yes
+#define PL_Gappctx             PL_appctx
+#define PL_Gcheck              PL_check
+#define PL_Gcsighandlerp       PL_csighandlerp
+#define PL_Gcurinterp          PL_curinterp
+#define PL_Gdo_undump          PL_do_undump
+#define PL_Gdollarzero_mutex   PL_dollarzero_mutex
+#define PL_Gfold_locale                PL_fold_locale
+#define PL_Ghexdigit           PL_hexdigit
+#define PL_Ghints_mutex                PL_hints_mutex
+#define PL_Gmalloc_mutex       PL_malloc_mutex
+#define PL_Gmmap_page_size     PL_mmap_page_size
+#define PL_Gmy_ctx_mutex       PL_my_ctx_mutex
+#define PL_Gmy_cxt_index       PL_my_cxt_index
+#define PL_Gop_mutex           PL_op_mutex
+#define PL_Gop_seq             PL_op_seq
+#define PL_Gop_sequence                PL_op_sequence
+#define PL_Gpatleave           PL_patleave
+#define PL_Gperlio_debug_fd    PL_perlio_debug_fd
+#define PL_Gperlio_fd_refcnt   PL_perlio_fd_refcnt
+#define PL_Gperlio_fd_refcnt_size      PL_perlio_fd_refcnt_size
+#define PL_Gperlio_mutex       PL_perlio_mutex
+#define PL_Gppaddr             PL_ppaddr
+#define PL_Grunops_dbg         PL_runops_dbg
+#define PL_Grunops_std         PL_runops_std
+#define PL_Gsh_path            PL_sh_path
+#define PL_Gsig_defaulting     PL_sig_defaulting
+#define PL_Gsig_handlers_initted       PL_sig_handlers_initted
+#define PL_Gsig_ignoring       PL_sig_ignoring
+#define PL_Gsig_sv             PL_sig_sv
+#define PL_Gsig_trapped                PL_sig_trapped
+#define PL_Gsigfpe_saved       PL_sigfpe_saved
+#define PL_Gsv_placeholder     PL_sv_placeholder
+#define PL_Gthr_key            PL_thr_key
+#define PL_Gtimesbase          PL_timesbase
+#define PL_Guse_safe_putenv    PL_use_safe_putenv
+#define PL_Gveto_cleanup       PL_veto_cleanup
+#define PL_Gwatch_pvx          PL_watch_pvx
 
-#endif /* EMBED */
 #endif /* PERL_GLOBAL_STRUCT */
 
+#ifdef PERL_POLLUTE            /* disabled by default in 5.6.0 */
+
+#define DBassertion            PL_DBassertion
+#define DBsingle               PL_DBsingle
+#define DBsub                  PL_DBsub
+#define compiling              PL_compiling
+#define curcop                 PL_curcop
+#define curstash               PL_curstash
+#define debstash               PL_debstash
+#define defgv                  PL_defgv
+#define diehook                        PL_diehook
+#define dirty                  PL_dirty
+#define dowarn                 PL_dowarn
+#define errgv                  PL_errgv
+#define na                     PL_na
+#define no_modify              PL_no_modify
+#define perl_destruct_level    PL_perl_destruct_level
+#define perldb                 PL_perldb
+#define ppaddr                 PL_ppaddr
+#define rsfp                   PL_rsfp
+#define rsfp_filters           PL_rsfp_filters
+#define stack_base             PL_stack_base
+#define stack_sp               PL_stack_sp
+#define stdingv                        PL_stdingv
+#define sv_arenaroot           PL_sv_arenaroot
+#define sv_no                  PL_sv_no
+#define sv_undef               PL_sv_undef
+#define sv_yes                 PL_sv_yes
+#define tainted                        PL_tainted
+#define tainting               PL_tainting
+
+#endif /* PERL_POLLUTE */
+
+/* ex: set ro: */