Thursday, 23 July 2020

Re: [gccsdk] New SharedLibs incompatibility

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.

_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

No comments:

Post a Comment