Transitioning libgomp from C to C++ implementation: Windows ('*-*-mingw32*')

LIU Hao lh_mouse@126.com
Tue Jul 7 12:19:06 GMT 2026


在 2026-7-3 10:45, LIU Hao via Gcc 写道:
> This allows building libgomp with win32 or mcf thread model. When yesterday I tried to build GCC master 
> it ICE'd, so I had to backport the patches to GCC 16, and everything built successfully.
> 
> However, it turns out that any program that is linked against libgomp DLL deadlocks upon exit; the reason 
> is complex but tl;dr; mingw-w64 CRT has to be patched as well (which I'll push later today):

With https://sourceforge.net/p/mingw-w64/mingw-w64/ci/0fad182ff178044ee442b05e1913aa16cde8efcf/ 
committed, I tried updating mingw-w64 CRT and rebuilding GCC with win32 thread model.

The ICE was gone, so I went ahead and ran libgomp tests. There were ~20 failures in C and C++ tests; some 
of them didn't compile, for example, libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c contains 
a call to `random()` which doesn't exist on Windows, and libgomp/alloc_cache.h still contains calls to 
pthread functions. There were also many failures in Fortran tests which I'm not familiar with.

I think this attempt to port libgomp to Windows without winpthreads is almost complete, but there are 
still some remaining changes.




-- 
Best regards,
LIU Hao
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20260707/ef8abceb/attachment.sig>


More information about the Gcc mailing list