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

Reply via email to