libstdc++: only define _GLIBCXX_HAVE_TLS for VxWorks >= 6.6
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>
Fri, 5 Nov 2021 14:37:33 +0000 (15:37 +0100)
committerRasmus Villemoes <rv@rasmusvillemoes.dk>
Tue, 9 Nov 2021 08:51:08 +0000 (09:51 +0100)
According to
https://gcc.gnu.org/legacy-ml/gcc-patches/2008-03/msg01698.html, the
TLS support, including the __tls_lookup function, was added to VxWorks
in 6.6.

It certainly doesn't exist on our VxWorks 5 platform, but the fallback
code in eh_globals.cc using __gthread_key_create() etc. used to work
just fine.

libstdc++-v3/ChangeLog:

* config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only
define for VxWorks >= 6.6.

libstdc++-v3/config/os/vxworks/os_defines.h

index c881b2b..75a68bc 100644 (file)
 #define _GLIBCXX_USE_WEAK_REF 0
 #endif
 
-// We support TLS on VxWorks (either directly or with emutls)
+// We support TLS on VxWorks >= 6.6 (either directly or with emutls)
+#if !_VXWORKS_PRE(6, 6)
 #define _GLIBCXX_HAVE_TLS 1
+#endif
 
 // VxWorks7 comes with a DinkumWare library and the system headers which we
 // are going to include for libstdc++ have a few related intrinsic