summaryrefslogtreecommitdiff
path: root/embedvar.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2007-11-07 23:58:06 +0000
committerNicholas Clark <nick@ccl4.org>2007-11-07 23:58:06 +0000
commitffee3ff61d01bece17fbf5f9da633f1917fa5c0a (patch)
treee663a44033087b325e33038fc170994972d55bc8 /embedvar.h
parent663f364bd429de50c8f5478879b1285d1270c1b3 (diff)
downloadperl-ffee3ff61d01bece17fbf5f9da633f1917fa5c0a.tar.gz
"Bake" the values of PERL_REVISION, PERL_VERSION and PERL_SUBVERSION
into global variables (and hence a shared perl library). Additionally under MULTIPLICITY record the size of the interpreter structure (total, and for this version) and under PERL_GLOBAL_STRUCT the size of the global variables structure. Coupled with PL_bincompat_options this will allow 5.10.1 (and later), when compiled with a shared perl library, to perform sanity checks in main() to verify that the shared library is indeed binary compatible. p4raw-id: //depot/perl@32238
Diffstat (limited to 'embedvar.h')
-rw-r--r--embedvar.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/embedvar.h b/embedvar.h
index 26d58210d5..27623d0349 100644
--- a/embedvar.h
+++ b/embedvar.h
@@ -683,10 +683,16 @@
#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_global_struct_size (my_vars->Gglobal_struct_size)
+#define PL_Gglobal_struct_size (my_vars->Gglobal_struct_size)
#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_interpreter_size (my_vars->Ginterpreter_size)
+#define PL_Ginterpreter_size (my_vars->Ginterpreter_size)
+#define PL_interpreter_size_5_10_0 (my_vars->Ginterpreter_size_5_10_0)
+#define PL_Ginterpreter_size_5_10_0 (my_vars->Ginterpreter_size_5_10_0)
#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)
@@ -713,6 +719,8 @@
#define PL_Gperlio_mutex (my_vars->Gperlio_mutex)
#define PL_ppaddr (my_vars->Gppaddr)
#define PL_Gppaddr (my_vars->Gppaddr)
+#define PL_revision (my_vars->Grevision)
+#define PL_Grevision (my_vars->Grevision)
#define PL_runops_dbg (my_vars->Grunops_dbg)
#define PL_Grunops_dbg (my_vars->Grunops_dbg)
#define PL_runops_std (my_vars->Grunops_std)
@@ -731,6 +739,8 @@
#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_subversion (my_vars->Gsubversion)
+#define PL_Gsubversion (my_vars->Gsubversion)
#define PL_sv_placeholder (my_vars->Gsv_placeholder)
#define PL_Gsv_placeholder (my_vars->Gsv_placeholder)
#define PL_thr_key (my_vars->Gthr_key)
@@ -739,6 +749,8 @@
#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_version (my_vars->Gversion)
+#define PL_Gversion (my_vars->Gversion)
#define PL_veto_cleanup (my_vars->Gveto_cleanup)
#define PL_Gveto_cleanup (my_vars->Gveto_cleanup)
#define PL_watch_pvx (my_vars->Gwatch_pvx)
@@ -755,8 +767,11 @@
#define PL_Gdo_undump PL_do_undump
#define PL_Gdollarzero_mutex PL_dollarzero_mutex
#define PL_Gfold_locale PL_fold_locale
+#define PL_Gglobal_struct_size PL_global_struct_size
#define PL_Ghexdigit PL_hexdigit
#define PL_Ghints_mutex PL_hints_mutex
+#define PL_Ginterpreter_size PL_interpreter_size
+#define PL_Ginterpreter_size_5_10_0 PL_interpreter_size_5_10_0
#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
@@ -770,6 +785,7 @@
#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_Grevision PL_revision
#define PL_Grunops_dbg PL_runops_dbg
#define PL_Grunops_std PL_runops_std
#define PL_Gsh_path PL_sh_path
@@ -779,10 +795,12 @@
#define PL_Gsig_sv PL_sig_sv
#define PL_Gsig_trapped PL_sig_trapped
#define PL_Gsigfpe_saved PL_sigfpe_saved
+#define PL_Gsubversion PL_subversion
#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_Gversion PL_version
#define PL_Gveto_cleanup PL_veto_cleanup
#define PL_Gwatch_pvx PL_watch_pvx