FAQ
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/27cdc72ee6ec3061d775f2ff7739a3b826d811a1?hp=cbef69c1c0b28f5a8e50e67afea1ff67dcce20aa>

- Log -----------------------------------------------------------------
commit 27cdc72ee6ec3061d775f2ff7739a3b826d811a1
Author: David Mitchell <davem@iabyn.com>
Date: Wed May 25 19:15:27 2016 +0100

     fix locale.c under -DPERL_GLOBAL_STRUCT(_PRIVATE)

     With that build option initialised statics aren't allowed (no BSS).
     So just disable using $ENV{PERL_DEBUG_LOCALE_INIT} under
     -DPERL_GLOBAL_STRUCT.

M locale.c

commit 1ee983f50d5e03f3a0d3f3a2fb92a6f6d49da9f2
Author: David Mitchell <davem@iabyn.com>
Date: Wed May 25 18:50:10 2016 +0100

     porting/libperl.t: better diag output

     when it complains about unexpected BSS symbols, list them

M t/porting/libperl.t

commit a73158aa0ed4103b2fa187c058e354bf55e7e7af
Author: David Mitchell <davem@iabyn.com>
Date: Wed May 25 18:30:17 2016 +0100

     add missing dVAR in pp_avhvswitch

     make it build under -DPERL_GLOBAL_STRUCT.

M pp.c
-----------------------------------------------------------------------

Summary of changes:
  locale.c | 13 ++++++++++---
  pp.c | 2 +-
  t/porting/libperl.t | 17 +++++++++++++++--
  3 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/locale.c b/locale.c
index 67843d2..141def9 100644
--- a/locale.c
+++ b/locale.c
@@ -48,7 +48,14 @@
   * initialization. This is done before option parsing, and before any thread
   * creation, so can be a file-level static */
  #ifdef DEBUGGING
+# ifdef PERL_GLOBAL_STRUCT
+ /* no global syms allowed */
+# define debug_initialization 0
+# define DEBUG_INITIALIZATION_set(v)
+# else
  static bool debug_initialization = FALSE;
+# define DEBUG_INITIALIZATION_set(v) (debug_initialization = v)
+# endif
  #endif

  #ifdef USE_LOCALE
@@ -947,9 +954,9 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
  #endif

  #ifdef DEBUGGING
- debug_initialization = (PerlEnv_getenv("PERL_DEBUG_LOCALE_INIT"))
+ DEBUG_INITIALIZATION_set((PerlEnv_getenv("PERL_DEBUG_LOCALE_INIT"))
                             ? TRUE
- : FALSE;
+ : FALSE);
  # define DEBUG_LOCALE_INIT(category, locale, result) \
   STMT_START { \
    if (debug_initialization) { \
@@ -1405,7 +1412,7 @@ Perl_init_i18nl10n(pTHX_ int printwarn)

  #ifdef DEBUGGING
      /* So won't continue to output stuff */
- debug_initialization = FALSE;
+ DEBUG_INITIALIZATION_set(FALSE);
  #endif

      return ok;
diff --git a/pp.c b/pp.c
index 17f31af..3df0bea 100644
--- a/pp.c
+++ b/pp.c
@@ -6418,7 +6418,7 @@ PP(pp_coreargs)

  PP(pp_avhvswitch)
  {
- dSP;
+ dVAR; dSP;
      return PL_ppaddr[
    (SvTYPE(TOPs) == SVt_PVAV ? OP_AEACH : OP_EACH)
        + (PL_op->op_private & 3)
diff --git a/t/porting/libperl.t b/t/porting/libperl.t
index 161f716..9a1d362 100644
--- a/t/porting/libperl.t
+++ b/t/porting/libperl.t
@@ -176,6 +176,7 @@ if (defined $fake_input) {
      }
      undef $nm_err_tmp; # In this case there will be no nm errors.
  } else {
+ print qq{# command: "$nm $nm_opt $libperl_a 2>$nm_err_tmp |"\n};
      open($nm_fh, "$nm $nm_opt $libperl_a 2>$nm_err_tmp |") or
          skip_all "$nm $nm_opt $libperl_a failed: $!";
  }
@@ -348,7 +349,13 @@ if ($GSP) {
      ok(!exists $data_symbols{PL_hash_seed}, "has no PL_hash_seed");
      ok(!exists $data_symbols{PL_ppaddr}, "has no PL_ppaddr");

- ok(! exists $symbols{data}{bss}, "has no data bss symbols");
+ ok(! exists $symbols{data}{bss}, "has no data bss symbols")
+ or do {
+ my $bad = "BSS entries (there are supposed to be none):\n";
+ $bad .= " bss sym: $_\n" for sort keys %{$symbols{data}{bss}};
+ diag($bad);
+ };
+
      ok(! exists $symbols{data}{data} ||
              # clang with ASAN seems to add this symbol to every object file:
              !grep($_ ne '__unnamed_1', keys %{$symbols{data}{data}}),
@@ -364,7 +371,13 @@ if ($GSP) {
      ok(!exists $data_symbols{PL_hash_seed}, "has no PL_hash_seed");
      ok(!exists $data_symbols{PL_ppaddr}, "has no PL_ppaddr");

- ok(! exists $symbols{data}{bss}, "has no data bss symbols");
+ ok(! exists $symbols{data}{bss}, "has no data bss symbols")
+ or do {
+ my $bad = "BSS entries (there are supposed to be none):\n";
+ $bad .= " bss sym: $_\n" for sort keys %{$symbols{data}{bss}};
+ diag($bad);
+ };
+

      # These PerlIO data symbols are left visible with
      # -DPERL_GLOBAL_STRUCT (as opposed to -DPERL_GLOBAL_STRUCT_PRIVATE)

--
Perl5 Master Repository

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl5-changes @
categoriesperl
postedMay 25, '16 at 9:58p
activeMay 25, '16 at 9:58p
posts1
users1
websiteperl.org

1 user in discussion

Dave Mitchell: 1 post

People

Translate

site design / logo © 2018 Grokbase