-----Original Message-----
From: Kacvinsky, Tom <tom.kacvin...@vector.com> 
Sent: Sunday, March 24, 2019 11:34 AM
To: mingw-w64-public@lists.sourceforge.net
Subject: Re: [Mingw-w64-public] Adding Visual Studio 2017 support to MinGW-w64

HI,

Realized I just be bottom posting.  Sorry about that.

-----Original Message-----
From: Martin Storsjö <mar...@martin.st>
Sent: Saturday, March 23, 2019 6:09 PM
To: mingw-w64-public@lists.sourceforge.net
Subject: Re: [Mingw-w64-public] Adding Visual Studio 2017 support to MinGW-w64

On Sat, 23 Mar 2019, Kacvinsky, Tom wrote:

> Hi Martin,
>
> I have a mixed C, C++, and Ada source tree.  I used Visual Studio to 
> compile C and C++ code, and a MinGW-w64 based Ada compiler.  What I 
> would like to do is get MinGW-w64 version 5.0.4 (which is what the Ada 
> compiler is based on) to have support for the Visual Studio CRT.
>
> So, what I'd like to do is get the specs file used by the Ada compiler 
> to have the necessary
> moldnames140 and vcruntime140 (or equivalent) library files for 
> linking, so I don't have a mismatch in the runtimes used by Ada 
> produced DLLs (via gnatdll) and the run time libraries used by C/C++ based 
> libraries and executables.
>
> I suppose an option here is to see what is done in MinGW-w64 6.x and 
> see if I can backport it to 5.0.4.

The support for the UCRT, which is what you want, isn't that trivial to 
backport - it's rather many changes in many places.

The best way to use it is to rebuild mingw-w64 from scratch with both headers 
and crt built with --with-default-msvcrt=ucrt (or ucrtbase). Then your 
"libmsvcrt.a" actually will be the libucrt.a (or libucrtbase.a) and will link 
against api-ms-win-crt-*.dll or ucrtbase.dll. (VS 2017 by default links against 
api-ms-win-crt-*.dll if linking the CRT
dynamically.)

You don't need to care about moldnames, in modern mingw-w64 versions that's an 
empty library. And vcruntime140 doesn't matter either, you don't need it 
(unless you are packaging an app for windows store).

Question: will the libucrt.a build with v6.0.0 work witch v5.0.4, or will I 
need more changes than that?
I am locked into v5.0.4 for the Ada toolchain I am using

Building v6.0.0 from the git repro (git checkout v6.0.06) using the MinGW-w64 
5.0.5 compilers (GCC 5.4.) and ran into this problem

misc/onexit_table.c:77:8: error: '_execute_onexit_table' undeclared here (not 
in a function)
 typeof(_execute_onexit_table) *__MINGW_IMP_SYMBOL(_execute_onexit_table) = 
_execute_onexit_table;

What do I need to do here?


_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to