[gccsdk] New SharedLibs incompatibility

Lee Noar lee.noar at sky.com
Thu Jul 23 07:56:38 PDT 2020


On 23/07/2020 12:38, David Pitt wrote:

> Is r7347 the full fix?

Yes, that fixes the Invalid argument error.

> Previously running Python38a6 this was the error ;-
> 
> pthread_cond_init: Invalid argument
> Fatal Python error: _PyRuntimeState_Init_impl: Can't initialize
> threads for interpreter
> Python runtime state: unknown
> 
> With r7347 and full rebuild of both build-world and ronative I get
> this :-
> 
> Fatal signal received: Segmentation fault
> 
> Stack backtrace:
> 
> Running thread 0x293344 (Main Thread)
>    (  807f34) pc: 474e9e34 lr: 474ea250 sp:   807f38
> __write_backtrace()
>    (  807fa0) pc: 474e9f84 lr: 474ebd54 sp:   807fa4
> __unixlib_raise_signal()
>    (  807fb0) pc: 474ebc3c lr: 474ca418 sp:   806c9c  __h_cback()
> 
>    Register dump at 00807fb4:
> 
>      a1: 204da3b0 a2:        1 a3:        1 a4:        1
>      v1:   2bb7e4 v2:   2bb7e0 v3:   2bc4a0 v4:   284808
>      v5:   2888d0 v6:   806e38 sl:   806208 fp:   806cac
>      ip: 204da354 sp:   806c9c lr: 474ca418 pc: 474ca428
>      cpsr: 20000010
> 
>    474ca414 : ��� : ebfdee8a : BL      &47445E44
>    474ca418 : .0�� : e5943004 : LDR     R3,[R4,#4]
>    474ca41c : ..S� : e3530000 : CMP     R3,#0
>    474ca420 : H!�. : 15932148 : LDRNE   R2,[R3,#328]
>    474ca424 : ..�. : 13a01007 : MOVNE   R1,#7
>    474ca428 : ... : 15831118 : STRNE   R1,[R3,#280]
>    474ca42c : . . : 15842004 : STRNE   R2,[R4,#4]
>    474ca430 : ���� : ebfdf0ff : BL      &47446834
>    474ca434 : ..�� : e3a00000 : MOV     R0,#0
> 
>    (  806cac) pc: 474ca404 lr:   12f604 sp:   806cb0
> pthread_cond_signal()
>    (  806cc8) pc:   12f5d4 lr:   11c080 sp:   806ccc
> PyThread_release_lock()
>    (  806ce8) pc:   11bfac lr:   11a440 sp:   806cec
> PyInterpreterState_New()
>    (  806e24) pc:   11a2a8 lr:   11aa6c sp:   806e28
> pyinit_core.constprop.10()
>    (  806e68) pc:   11aa28 lr:    2b368 sp:   806e6c
> Py_InitializeFromConfig()
>    (  806f90) pc:    2b2bc lr:    2c368 sp:   806f94  pymain_init()
>    (  806fdc) pc:    2c334 lr:    21348 sp:   806fe0  Py_BytesMain()
>    (  806fec) pc:    2133c lr: 47500cc0 sp:   806ff0  main()

I've just realised that this could be due to __pthread_cond
increasing in size to support a relative clock_id. Any old code
will assume the old size, so if python is built against an old
pthread.h header, it will be using the old size.

Lee.



More information about the gcc mailing list