[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc
Subject:    [PATCH 5/5] libgcc: vxworks: don't set __GTHREAD_CXX0X for vxworks 5.x
From:       Rasmus Villemoes <rv () rasmusvillemoes ! dk>
Date:       2020-05-26 14:52:37
Message-ID: 20200526145237.17765-6-rv () rasmusvillemoes ! dk
[Download RAW message or body]

gthr-vxworks-thread.c fails to compile for vxworks 5.x:

libgcc/config/gthr-vxworks-thread.c:268:14: error: 'VX_USR_TASK_OPTIONS' undeclared \
(first use in this function)  268 |   options &= VX_USR_TASK_OPTIONS;
      |              ^~~~~~~~~~~~~~~~~~~

libgcc/config/gthr-vxworks-thread.c:282:3: error: unknown type name 'TASK_ID'
  282 |   TASK_ID task_id = taskCreate (NULL,
      |   ^~~~~~~

As for __GTHREAD_HAS_COND, use __GTHREAD_CXX0X to guard the actual
contents of gthr-vxworks-thread.c. That should also allow dropping the
t-gthr-vxworksae fragment and simply use t-gthr-vxworks.
---
 libgcc/config/gthr-vxworks-thread.c | 4 ++++
 libgcc/config/gthr-vxworks.h        | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/libgcc/config/gthr-vxworks-thread.c \
b/libgcc/config/gthr-vxworks-thread.c index 8544b03dd18..183198577eb 100644
--- a/libgcc/config/gthr-vxworks-thread.c
+++ b/libgcc/config/gthr-vxworks-thread.c
@@ -30,6 +30,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, \
see  #include "gthr.h"
 #include <taskLib.h>
 
+#if __GTHREAD_CXX0X
+
 #define __TIMESPEC_TO_NSEC(timespec) \
   ((long long)timespec.tv_sec * 1000000000 + (long long)timespec.tv_nsec)
 
@@ -347,3 +349,5 @@ __gthread_detach (__gthread_t __threadid)
 
   return OK;
 }
+
+#endif
diff --git a/libgcc/config/gthr-vxworks.h b/libgcc/config/gthr-vxworks.h
index 91e3d94ac67..14e7d54b022 100644
--- a/libgcc/config/gthr-vxworks.h
+++ b/libgcc/config/gthr-vxworks.h
@@ -263,7 +263,7 @@ extern int __gthread_cond_wait_recursive (__gthread_cond_t *cond,
 /* We do not support C++0x threads on that VxWorks 653, which we can
    recognize by VTHREADS being defined.  */
 
-#ifndef VTHREADS
+#if _VXWORKS_MAJOR_GE(6) && !defined(VTHREADS)
 
 #define __GTHREADS_CXX0X 1
 
@@ -326,7 +326,7 @@ extern int __gthread_detach (__gthread_t thread);
 
 extern __gthread_t __gthread_self (void);
 
-#endif
+#endif /* _VXWORKS_MAJOR_GE(6) && !defined(VTHREADS) */
 
 #ifdef __cplusplus
 }
-- 
2.23.0


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic