Transitioning libgomp from C to C++ implementation: RTEMS
GCC's libgomp, currently C-based, is being transitioned to C++.
The libgomp library, which provides OpenMP support in GCC, is being rewritten from C to C++. This transition is expected to affect various targets, including those using RTEMS, Darwin, and Cygwin. “embedded-brains.de” notes that libgomp is enabled for RTEMS targets supporting SMP, and there’s ongoing work sponsored by the European Space Agency for critical systems. “sandoe.co.uk” confirms libgomp support on Darwin, while “10walls@gmail.com” and “lh_mouse@126.com” discuss Cygwin and MinGW considerations, particularly regarding pthread implementations.
- proposer
Seeks confirmation that a standard GCC build with libgomp enabled will work on the cfarm104 macOS ARM system once it's back online.
- proposer
Inquires about libgomp support for Cygwin and MinGW targets, noting that it requires a pthread implementation and discussing the nuances of different triplets.
- contributor
Confirms that libgomp is supported on Darwin.
- contributor
Acknowledges the inquiry regarding Cygwin and MinGW targets and suggests involving other developers for those platforms.
- contributor
Clarifies the triplet naming for MinGW targets and points out that libgomp depends on a pthread implementation, which is not a default for mingw* targets.
Technical Tradeoffs
- Transitioning from C to C++ may introduce new dependencies or require more complex build configurations.
- Ensuring ABI compatibility across different C and C++ codebases is crucial.
- Maintaining support for diverse operating systems and build environments adds complexity.
In Details
This discussion concerns the porting of libgomp, GCC's OpenMP runtime library, from C to C++. The goal is to ensure that this transition does not break existing support for various operating systems and build environments, including RTEMS, Darwin, and Windows (Cygwin/MinGW). Maintainers are being consulted about build configurations and potential target-specific issues.