GCC and CRT to UCRT

84 views
Skip to first unread message

Itamar Lins

unread,
Oct 16, 2026, 12:58:33 PM (6 days ago) Oct 16
to Harbour Developers
Hi!
Clarification.

2026-10-16 13:17 UTC+0200 Aleksander Czajczynski (hb fki.pl)
  * .github/workflows/windows-ci.yml
    - MSYS has removed x64 allegro package

MSYS not remove the allegro, but change/update to UCRT
pacman -S mingw-w64-ucrt-x86_64-allegro

2. What Changes is the "Conversation" with Windows (The Runtime)
For the executable generated by GCC to work, it needs to communicate with the Windows operating system through a base library called C Runtime (CRT). This is where the replacement happens:The old standard (MSVCRT): This was the library used by the MINGW64 environment. It is very old (dating back to the Windows 95 era) and lacks native support for modern Windows features. It also causes issues with character accents (UTF-8 encoding) and compatibility with newer C++ standards. Because of this, MSYS2 is phasing out the packages linked to it.
The new standard (UCRT): This stands for Universal C Runtime, which was created by Microsoft for Windows 10 and 11. The new UCRT64 environment in MSYS2 uses the exact same GCC compiler as always, but it is now configured to communicate with this modern library.

Visual Summary of the Changes
How it used to be in MINGW64 (Being deprecated):
MinGW64 Terminal ➔ GCC Compiler ➔ Communicated with MSVCRT (Old) ➔ Old Allegro Package
How it is in UCRT64 (Current standard as of 2026):
UCRT64 Terminal ➔ GCC Compiler ➔ Communicates with UCRT (Modern) ➔ UCRT Allegro Package

Best regards,
Itamar M. Lins Jr.

Aleksander Czajczynski

unread,
Oct 17, 2026, 1:56:20 AM (5 days ago) Oct 17
to harbou...@googlegroups.com
Many thanks for noticing. It means that separate UCRT flavour should be added into the CI platform/matrix test setup. Can't just borrow single package from UCRT

Best regards, Aleksander

Itamar Lins wrote:
--
You received this message because you are subscribed to the Google Groups "Harbour Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-deve...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/harbour-devel/2483a271-2607-404c-bd6e-84f917bc3d9en%40googlegroups.com.

Bacco

unread,
Oct 17, 2026, 2:35:03 PM (5 days ago) Oct 17
to harbou...@googlegroups.com
Hi

A side note: Recently I needed to embed windows webview2 on a legacy Harbour project, and as I have win 7 as target, I skipped the windows sdk entirely, and asked some IA model to generate the headers, then I did dynamic loading of the DLL in C, skipping all sdk and 'modern requirements' entirely. I don't use IA for "real" code, but in this cases, it can be a good indexing engine to search all definitions needed. Not related to the UCRT situation directly, but just a heads up for anyone that is dealing with legacy problems and don't want to break compatibility with win below 10.

I know less experienced users will bash legacy win by security considerations, but they forget all the new problems related to all windows above 7, so I believe there are users mature enough to put the correct weights on the scale, and choose what they see fit (I'm also following some maker comunnities, where i'ts very common to have offline machines using 7 for CNC and related functions).

Regards,
Bacco

Reply all
Reply to author
Forward
0 new messages