develooper Front page | perl.perl5.porters | Postings from August 2018

Re: Threaded bleads broken on HP-UX 11.31 by commit 7258295b51ee7

Thread Previous | Thread Next
From:
Karl Williamson
Date:
August 4, 2018 20:56
Subject:
Re: Threaded bleads broken on HP-UX 11.31 by commit 7258295b51ee7
Message ID:
8db6d777-1605-da32-e8a4-54b5f0765c46@khwilliamson.com
On 08/04/2018 02:08 PM, H.Merijn Brand wrote:
> On Sat, 4 Aug 2018 12:24:33 -0600, Karl Williamson
> <public@khwilliamson.com> wrote:
> 
>> On 08/04/2018 09:02 AM, Karl Williamson wrote:
>>> On 08/04/2018 08:00 AM, H.Merijn Brand wrote:
>>>> On Sat, 4 Aug 2018 15:51:06 +0200, "H.Merijn Brand"
>>>> <h.m.brand@xs4all.nl> wrote:
>>>>   
>>   [...]
>>   [...]
>>   [...]
>>   [...]
>>>>
>>>> These two stem from perlvars.h
>>>>
>>>> If I remove those two lines from there ...
>>>>
>>>> "regcomp.c", line 21552: error #2020: identifier "PL_utf8_mark" is
>>>> undefined
>>>>         PL_utf8_mark = _new_invlist_C_array(uni_prop_ptrs[UNI_M]);
>>>>         ^
>>>>
>>>> As to be expected.
>>>> How to move from here?
>>>>   
>>>
>>> On my system:
>>> $ nm --print-file-name *.o|grep utf8_mark
>>> globals.o:00000000000063f8 B PL_utf8_mark
>>> mathoms.o:                 U Perl__is_utf8_mark
>>> mathoms.o:0000000000005309 T Perl_is_utf8_mark
>>> mathoms.o:0000000000001f20 r _ZZ17Perl_is_utf8_markE19__PRETTY_FUNCTION__
>>> pp.o:                 U Perl__is_utf8_mark
>>> regcomp.o:                 U PL_utf8_mark
>>> utf8.o:0000000000006d42 T Perl__is_utf8_mark
>>> utf8.o:                 U PL_utf8_mark
>>> utf8.o:00000000000120e0 r _ZZ18Perl__is_utf8_markE19__PRETTY_FUNCTION__
>>>
>>> The question becomes why does your globals.o not have these symbols, and
>>> mine does?
>>>    
>>
>> I suggest doing an
>>
>> ls -l globals.o
>>
>> to verify that it is of recent vintage, and to make sure it got
>> regenerated, do
> 
> $ nm globals.o | grep PL_utf
> [510]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_charname_begin
> [511]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_charname_continue
> [495]    |                    88|       8|OBJT |GLOB |0|  .sdata|PL_utf8_foldable
> [512]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_foldclosures
> [496]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_idcont
> [497]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_idstart
> [498]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_perl_idcont
> [499]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_perl_idstart
> [508]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_tofold
> [507]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_tolower
> [509]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_tosimplefold
> [506]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_totitle
> [505]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_toupper
> [500]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_xidcont
> [501]    |                     8|       8|OBJT |GLOB |0| ANSI CO|PL_utf8_xidstart
> [400]    |                  1024|     256|OBJT |GLOB |0| .rodata|PL_utf8skip
> 

And on 11.23,
$ nm globals.o|grep PL_utf
PL_utf8_charname_begin|         4|sdef  |common |$SHORTBSS$
PL_utf8_charname_continue|         4|sdef  |common |$SHORTBSS$
PL_utf8_foldable    |1073755768|extern|data   |$SHORTDATA$
PL_utf8_foldclosures|         4|sdef  |common |$SHORTBSS$
PL_utf8_idcont      |         4|sdef  |common |$SHORTBSS$
PL_utf8_idstart     |         4|sdef  |common |$SHORTBSS$
PL_utf8_mark        |         4|sdef  |common |$SHORTBSS$
PL_utf8_perl_idcont |         4|sdef  |common |$SHORTBSS$
PL_utf8_perl_idstart|         4|sdef  |common |$SHORTBSS$
PL_utf8_tofold      |         4|sdef  |common |$SHORTBSS$
PL_utf8_tolower     |         4|sdef  |common |$SHORTBSS$
PL_utf8_tosimplefold|         4|sdef  |common |$SHORTBSS$
PL_utf8_totitle     |         4|sdef  |common |$SHORTBSS$
PL_utf8_toupper     |         4|sdef  |common |$SHORTBSS$
PL_utf8_xidcont     |         4|sdef  |common |$SHORTBSS$
PL_utf8_xidstart    |         4|sdef  |common |$SHORTBSS$
PL_utf8skip         |     57672|extern|data   |$LIT$

If I grep the relevant source lines for utf8_mark and 
utf8_charname_continue, I get

./perlvars.h:305:PERLVAR(G, utf8_charname_continue, SV *)
  ./perlvars.h:306:PERLVAR(G, utf8_mark,  SV *)
  ./embedvar.h:468:#define PL_utf8_charname_continue 
(my_vars->Gutf8_charnam e_continue)
  ./embedvar.h:469:#define PL_Gutf8_charname_continue 
(my_vars->Gutf8_charnam e_continue)
  ./embedvar.h:478:#define PL_utf8_mark           (my_vars->Gutf8_mark)
  ./embedvar.h:479:#define PL_Gutf8_mark          (my_vars->Gutf8_mark)
   ./perlapi.h:216:#undef  PL_utf8_charname_continue
  ./perlapi.h:217:#define PL_utf8_charname_continue 
(*Perl_Gutf8_charname_c ontinue_ptr(NULL))
  ./perlapi.h:226:#undef  PL_utf8_mark
  ./perlapi.h:227:#define PL_utf8_mark 
(*Perl_Gutf8_mark_ptr(NULL))

You see that the definition in perlvars.h for utf8_charname_continue and 
utf8_mark are adjacent.  The rest are generated files and indicate that 
there's no difference between these two variables.  But one is in 
globals.o and the other isn't.


>> make regen
>>
>> On Tux's HP-UX 11.23 box, I get
>>
>> $ nm -A *.o|grep utf8_mark
>> globals.o:PL_utf8_mark|         4|sdef  |common |$SHORTBSS$
>> pp.o:Perl__is_utf8_mark|          |undef |code   |
>> regcomp.o:PL_utf8_mark|          |undef |data   |
>> utf8.o:PL_utf8_mark |          |undef |data   |
>> utf8.o:Perl__is_utf8_mark|    100876|extern|entry  |$CODE$
> 

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About