Hello, This change adds support for the __GTHREAD_HAS_COND and __GTHREADS_CXX0X facilities on top of what was already there for the base __GTHREADS code on VxWorks. It also improves the general support to handle VxWorks 7 in more configurations.
Split the current vxlib.c source into separate files for this, adopting a naming convention similar to what other ports do. Extract the parts of t-vxworks* adding those sources to the libgcc closure into separate files, so we can include the separate fragments after everything else for all the ports. Useful in particular for arm, where t-bpabi resets LIB2ADDEH on purpose. Tested together with the other patches in the series. We have also had good c++ and libstdc++ test results on gcc-8 with this, associated with additional changes that we haven't yet ported to more recent versions of gcc (porting in progresss). Olivier 2019-11-12 Corentin Gay <g...@adacore.com> Jerome Lambourg <lambo...@adacore.com> Olivier Hainque <hain...@adacore.com> libgcc/ * config/t-gthr-vxworks: New file, add all the gthr-vxworks sources to LIB2ADDEH. * config/t-vxworks: Remove adjustments to LIB2ADDEH. * config/t-vxworks7: Likewise. * config.host: Append a block at the end of the file to add the t-gthr files to the tmake_file list for VxWorks after everything else. * config/vxlib.c: Rename as gthr-vxworks.c. * config/vxlib-tls.c: Rename as gthr-vxworks-tls.c. * config/gthr-vxworks.h: Simplify a few comments. Expose a TAS API and a basic error checking API, both internal. Simplify the __gthread_once_t type definition and initializers. Add sections for condition variables support and for the C++0x thread support, conditioned against Vx653 for the latter. * config/gthr-vxworks.c (__gthread_once): Simplify comments and implementation, leveraging the TAS internal API. * config/gthr-vxworks-tls.c: Introduce an internal TLS data access API, leveraging the general availability of TLS services in VxWorks7 post SR6xxx. (__gthread_setspecific, __gthread_setspecific): Use it. (tls_delete_hook): Likewise, and simplify the enter/leave dtor logic. * config/gthr-vxworks-cond.c: New file. GTHREAD_COND variable support based on VxWorks primitives. * config/gthr-vxworks-thread.c: New file. GTHREAD_CXX0X support based on VxWorks primitives.
0003-Improve-the-thread-support-for-VxWorks.patch
Description: Binary data