GCC Newspaper
JULY 29, 2026
gcc Proposed Sentiment 7 / 10

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.

In the Thread 5 participants
  1. Thomas Schwinge <tschwinge@baylibre.com> proposer

    Seeks confirmation that a standard GCC build with libgomp enabled will work on the cfarm104 macOS ARM system once it's back online.

  2. Thomas Schwinge <tschwinge@baylibre.com> proposer

    Inquires about libgomp support for Cygwin and MinGW targets, noting that it requires a pthread implementation and discussing the nuances of different triplets.

  3. Iain Sandoe <iain@sandoe.co.uk> contributor

    Confirms that libgomp is supported on Darwin.

  4. Jonathan Yong <10walls@gmail.com> contributor

    Acknowledges the inquiry regarding Cygwin and MinGW targets and suggests involving other developers for those platforms.

  5. LIU Hao <lh_mouse@126.com> 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.

Filed Under: libgompOpenMPC++GCCporting