develooper Front page | perl.perl5.porters | Postings from June 2019

[perl #134172] commit 027471cf breaks t/op/sprintf2.t on FreeBSD-11

Thread Previous | Thread Next
From:
James E Keenan via RT
Date:
June 8, 2019 22:11
Subject:
[perl #134172] commit 027471cf breaks t/op/sprintf2.t on FreeBSD-11
Message ID:
rt-4.0.24-6725-1560031876-461.134172-15-0@perl.org
On Fri, 07 Jun 2019 00:25:06 GMT, jkeenan wrote:
> On Fri, 07 Jun 2019 00:00:13 GMT, hv wrote:
> > On Thu, 06 Jun 2019 10:30:58 -0700, jkeenan wrote:
> > > Watchpoint 2: PL_locale_mutex
> > >
> > > Old value = 0x801e1c1e0
> > > New value = 0x2
> > > _pthread_mutex_destroy (mutex=0xa45b28) at pthread_md.h:95
> > > 95              return (TCB_GET64(tcb_thread));
> > > Current language:  auto; currently minimal
> > > (gdb) bt
> > > #0  _pthread_mutex_destroy (mutex=0xa45b28) at pthread_md.h:95
> > > #1  0x000000000044c554 in Perl_sys_term () at perl.c:152
> > >  #2  0x0000000000421472 in main (argc=<value optimized out>,
> > > argv=<value optimized out>,
> > >     env=0x7fffffffe7a0) at perlmain.c:155
> > 
> > Ok, we're getting somewhere - somewhere weird, but somewhere.
> > 
> > Please could you post the extract from pthread_md.h around line 95,
> > presumably a #define or inline function for _pthread_mutex_destroy? 
> 
> # /usr/src/lib/libthr/arch/amd64/include/pthread_md.h
> #####
>  92 static __inline struct pthread *
>  93 _get_curthread(void)
>  94 {
>  95     return (TCB_GET64(tcb_thread));
>  96 }
> #####
> 
> > If you're also able to find the definition for TCB_GET64 somewhere in the
> > include files (most likely under /usr/include) that would help too.
> > 
> 
> # /usr/src/lib/libthr/arch/amd64/include/pthread_md.h
> #####
>  65 /*
>  66  * Evaluates to the value of the per-tcb variable name.
>  67  */
>  68 #define TCB_GET64(name) ({                  \
>  69     __tcb_type(name) __result;              \
>  70                                 \
>  71     u_long __i;                     \
>  72     __asm __volatile("movq %%fs:%1, %0"         \
>  73         : "=r" (__i)                    \
>  74         : "m" (*(volatile u_long *)(__tcb_offset(name))));  \
>  75     __result = (__tcb_type(name))__i;           \
>  76                                 \
>  77     __result;                       \
>  78 })
> #####

hv and I are continuing to investigate this, but any help from someone with access to any of the affected OSes is welcome.

Thank you very much.

-- 
James E Keenan (jkeenan@cpan.org)

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=134172

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