[I note (again) that Joel Sherrill <[email protected]> isn't deliverable
(CCing another address), and Ralf Corsepius <[email protected]>
also isn't deliverable; please maintain GCC's 'MAINTAINERS' file.]


Hi Sebastian!

On 2026-06-22T05:11:30+0200, Sebastian Huber 
<[email protected]> wrote:
> ----- Am 21. Jun 2026 um 9:06 schrieb Thomas Schwinge [email protected]:
>> Hi GCC/RTEMS maintainers!
>> 
>> On 2026-05-07T13:16:59+0200, I wrote:
>>> [...]
>>>
>>> The idea of transitioning libgomp from C to C++ implementation has come
>>> up a number of times, [...]
>>>
>>> I'm now working on this.
>>>
>>> For a start, I've assessed that all GCC configurations that support
>>> libgomp also are able to build the GCC/C++ front end, as far as I can
>>> easily tell.
>>>
>>> I'll try to be mindful about handling all of libgomp's implementation
>>> files, but may reach out to individual GCC target maintainers for
>>> 'libgomp/config/' files, for example, that I can't easily test myself.
>>>
>>> [...]
>> 
>> Per my understanding, for GCC/RTEMS, libgomp is not enabled by default in
>> GCC 'configure.ac' (needs explicit '--enable-libgomp'), but it appears to
>> be supported: RTEMS is mentioned in 'libgomp/configure.ac',
>> 'libgomp/configure.tgt', and has 'libgomp/config/rtems/' files.  Please
>> let me know in case libgomp/RTEMS is in fact not supported (anymore).
>> 
>> Assuming it is supported, I shall try to not break it.
>
> it is enabled for all RTEMS targets supporting SMP. This is aarch64, arm, 
> riscv, powerpc, and sparc. It is actively used

That's great to hear!

> and there is an ongoing activity sponsored by the European Space Agency to 
> enable the usage in critical systems.

Interesting!  If there are any concerns -- or publications -- regarding
use of libgomp in critical systems, we'd be interested to hear.
(Different topic, different email thread.)

> Moving from C to C++ will cause them some headaches, however, this should be 
> of no concern for the GCC development.

This is purely about the implementation of libgomp itself, internally.
All external interfaces (ABI) remain compatible/unchanged, and also the
compiled libgomp object code should mostly be the same as the current C
implementation.  Any specific concerns that we should work on addressing?

>> During ongoing development, I'll need to run a number of GCC/libgomp
>> builds for RTEMS over the next few weeks/months (tentatively); therefore
>> would like to do it myself instead of asking you each time.
>> 
>> I need GCC 'configure'd with '--enable-languages=c,c++,fortran',
>> '--enable-libgomp', and then 'make', and 'make check-target-libgomp' if
>> feasible.
>> 
>> Ideally, easiest, I'd do native builds, but that may not be applicable
>> for RTEMS?  I don't see any RTEMS systems listed on
>> <https://portal.cfarm.net/machines/list/>.  Otherwise, cross builds with
>> testing option, or without testing, in case that's not feasible.  (I
>> assume that, as for other configurations, also for RTEMS my C -> C++
>> baseline conversion changes are good to go, once they compile without
>> error.)
>> 
>> Per 'libgomp/configure.ac':
>> 
>>    *-*-rtems*)
>>      AC_CHECK_TYPES([struct _Mutex_Control],[],[],[#include <sys/lock.h>])
>> 
>> ..., and 'libgomp/configure.tgt':
>> 
>>    *-*-rtems*)
>>          # Use self-contained synchronization objects if provided by Newlib
>>          if test "x$ac_cv_type_struct__Mutex_Control" = xyes ; then
>>              config_path="rtems posix"
>> 
>> ..., there appear to be two major configuration variants: either only
>> 'libgomp/config/posix/', or 'libgomp/config/rtems/' plus the former.  (As
>> far as I can easily tell, there aren't any compile-time conditionals in
>> the 'libgomp/config/rtems/' files, so I assume I don't really care about
>> the specific CPU architecture.)
>
> This "if test "x$ac_cv_type_struct__Mutex_Control" = xyes ; then" is 
> obsolete. The check is always true. I will remove this check.

Thanks, that's good to know.

> You have to compile RTEMS with a cross-compiler. I can send you some build 
> scripts to build the tools, RTEMS, a simulator, and an OpenMP test program.

OK, that sounds about what I expected.  Please send the build scripts
that you have, thanks!


Grüße
 Thomas

Reply via email to