Commit 806dd0472f56 (Improve the thread support for VxWorks) introduced calls of (on vxworks 5 at least) non-existing __gthread_enter_tls_dtor_context/__gthread_leave_tls_dtor_context ; the code used to call __gthread_enter_tsd_dtor_context/__gthread_leave_tsd_dtor_context. Those are simply no-ops (we simply use the definitions which are provided in contrib/gthr_supp_vxw_5x.c), so we can fix this by nop'ing out VX_ENTER_TLS_DTOR/VX_LEAVE_TLS_DTOR for vxworks 5.x. --- libgcc/config/gthr-vxworks-tls.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/libgcc/config/gthr-vxworks-tls.c b/libgcc/config/gthr-vxworks-tls.c index fac25e305a0..726304166fc 100644 --- a/libgcc/config/gthr-vxworks-tls.c +++ b/libgcc/config/gthr-vxworks-tls.c @@ -117,8 +117,13 @@ extern void __gthread_leave_tls_dtor_context (void); #define VX_GET_TLS_DATA() __gthread_get_tls_data() #define VX_SET_TLS_DATA(x) __gthread_set_tls_data(x) +#ifdef _VXWORKS_MAJOR_EQ(5) +#define VX_ENTER_TLS_DTOR() +#define VX_LEAVE_TLS_DTOR() +#else #define VX_ENTER_TLS_DTOR() __gthread_enter_tls_dtor_context () #define VX_LEAVE_TLS_DTOR() __gthread_leave_tls_dtor_context () +#endif #endif -- 2.23.0