diff options
-rwxr-xr-x | Configure | 28 | ||||
-rw-r--r-- | INSTALL | 43 | ||||
-rw-r--r-- | global.sym | 2 | ||||
-rw-r--r-- | malloc.c | 2 |
4 files changed, 22 insertions, 53 deletions
@@ -2598,32 +2598,8 @@ $undef$define) . ./whoa; eval "$var=\$tu";; *) eval "$var=$val";; esac' -$cat <<EOM - -Perl 5.004 can be compiled for binary compatibility with 5.003. -If you decide to do so, you will be able to continue using any -extensions that were compiled for Perl 5.003. However, binary -compatibility forces Perl to expose some of its internal symbols -in the same way that 5.003 did. So you may have symbol conflicts -if you embed a binary-compatible Perl in other programs. - -EOM -case "$d_bincompat3" in -"$undef") dflt=n ;; -*) dflt=y ;; -esac -rp='Binary compatibility with Perl 5.003?' -. ./myread -case "$ans" in -y*) val="$define" ;; -*) val="$undef" ;; -esac -set d_bincompat3 -eval $setvar -case "$d_bincompat3" in -"$define") bincompat3=y ;; -*) bincompat3=n ;; -esac +: bincompat3 is no more even possible starting with 5.005 +d_bincompat3=$undef : make some quick guesses about what we are up against echo " " @@ -445,36 +445,25 @@ some of the main things you can change. =head2 Binary Compatibility With Earlier Versions of Perl 5 -If you have dynamically loaded extensions that you built under -perl 5.003 and that you wish to continue to use with perl 5.004, then you -need to ensure that 5.004 remains binary compatible with 5.003. - -Starting with Perl 5.003, all functions in the Perl C source code have -been protected by default by the prefix Perl_ (or perl_) so that you -may link with third-party libraries without fear of namespace -collisions. This change broke compatibility with version 5.002, so -installing 5.003 or 5.004 over 5.002 or earlier will force you to -re-build and install all of your dynamically loadable extensions. -(The standard extensions supplied with Perl are handled +For Perl 5.004 it was possible to be binary compatible with 5.003. +Starting from Perl 5.005 this is no more possible because there were +many deep and far-reaching changes to the language internals. + +If you have dynamically loaded extensions that you built under perl +5.003 or 5.004 and the so-called 'bincompat3' mode (the default mode) +and that you wish to continue to use with perl 5.005, you may need to +reinstall the extensions. + +Background: starting with Perl 5.003, all functions in the Perl C +source code have been protected by default by the prefix Perl_ (or +perl_) so that you may link with third-party libraries without fear of +namespace collisions. This change broke compatibility with version +5.002, so installing 5.003 or 5.004 over 5.002 or earlier will force +you to re-build and install all of your dynamically loadable +extensions. (The standard extensions supplied with Perl are handled automatically). You can turn off this namespace protection by adding -DNO_EMBED to your ccflags variable in config.sh. -Perl 5.003's namespace protection was incomplete, but this has -been fixed in 5.004. However, some sites may need to maintain -complete binary compatibility with Perl 5.003. If you are building -Perl for such a site, then when Configure asks if you want binary -compatibility, answer "y". - -On the other hand, if you are embedding perl into another application -and want the maximum namespace protection, then you probably ought to -answer "n" when Configure asks if you want binary compatibility, or -disable it from the Configure command line with - - sh Configure -Ud_bincompat3 - -The default answer of "y" to maintain binary compatibility is probably -appropriate for almost everyone. - In a related issue, old extensions may possibly be affected by the changes in the Perl language in the current release. Please see pod/perldelta.pod for a description of what's changed. diff --git a/global.sym b/global.sym index ebd6d7e3f5..18322a77da 100644 --- a/global.sym +++ b/global.sym @@ -188,6 +188,8 @@ rsfp_filters rshift_amg rshift_ass_amg runops +runops_debug +runops_standard savestack savestack_ix savestack_max @@ -2,6 +2,8 @@ * */ +#define EMBEDMYMALLOC + #if defined(PERL_CORE) && !defined(DEBUGGING_MSTATS) # define DEBUGGING_MSTATS #endif |