On Sunday 20 November 2022 21:36:19 LIU Hao wrote:
> 在 2022-11-20 20:53, Pali Rohár 写道:
> > Hello! I would like to propose a new parameter for gcc: -mcrtdll= to
> > allow specifying against which Windows C Runtime library should be
> > binary linked. On Windows there are more crt libraries and currently gcc
> > links to libmsvcrt.a which is in most cases symlink to libmsvcrt-os.a
> > (but can be changed, e.g. during mingw-w64 building). mingw-w64 project
> > already builds import .a library for every crt dll library (from the old
> > crtdll.dll up to the new ucrtbase.dll), so it is ready for usage. Simple
> > patch for gcc which implements -mcrtdll parameter is below. Note that on
> > internet are other very similar patches for -mcrtdll= parameters and
> > some are parts of custom mingw32 / mingw-w64 gcc builds. What do you
> > think? Could gcc have "official" support for -mcrtdll= parameter?
> > 
> > 
> 
> It's not enough to just link against the desired library, you will also have
> to define `__MSVCRT_VERSION__` accordingly (for UCRT it should be defined as
> `0xE00` i.e. 14.0).
> 
> The current status of such mechanism is that both the macro
> `__MSVCRT_VERSION__` and the library 'libmsvcrt.a' are determined when
> building mingw-w64, configurable by `--with-default-msvcrt=`, so they always
> match.
> 
> 
> [1] https://sourceforge.net/p/mingw-w64/mailman/message/36030072/

Thank you for explaining more details. My simple patch takes this in
care and defines also __MSVCRT_VERSION__ to the correct value based on
-mcrtdll parameter.

Reply via email to