On Tuesday 22 October 2024 23:52:11 Martin Storsjö wrote:
> On Sat, 19 Oct 2024, Pali Rohár wrote:
> 
> > libmsvcrtd.a is import library for msvcrtd.dll and therefore it cannot
> > include libmsvcrt_extra.a library which object files are compiled with
> > -D__LIBMSVCRT_OS__ which instruct code to access msvcrt.dll library.
> > 
> > Add a new static library libmsvcrtd_extra.a which is compiled from subset
> > of libmsvcrt_extra.a sources which does not depend on msvcrt.dll and
> > compile them without -D__LIBMSVCRT_OS__ option. Then use this new static
> > library libmsvcrtd_extra.a for building the final libmsvcrtd.a import 
> > library.
> > ---
> > mingw-w64-crt/Makefile.am       | 43 +++++++++++++++++++++++++++++++--
> > mingw-w64-crt/lib32/msvcrtd.mri |  2 +-
> > 2 files changed, 42 insertions(+), 3 deletions(-)
> 
> Thanks - this version does compile correctly.
> 
> I'd like to point out, that this patch does add a bit of maintainance burden
> - there's yet another new src_<library> variable with a lot of source files,
> that needs to be taken into account whenever we move functions around
> between the libraries. The rule for exactly which files from src_msvcrt that
> are included and which ones aren't, isn't very obvious either. (Include all
> files except the ones that trigger #error?)
> 
> When judging whether we should add these debug variants of CRTs, one factor
> was/is how much extra maintainance burden they add; this new information
> makes me wonder if we really do need an import library for this DLL at all?
> 
> // Martin

This is just a way how source files are currently defined in the
Makefile.am.

I was thinking about improving this situation by defining variables like
src_up_to_msvcr100, src_up_to_msvcr80, ... as lot of source files are
statically linked into more msvcr libraries. There is common pattern:
if the msvcrX introduced function F then emulation of F is included in
all versions prior X. And this should reduce the maintenance problems.


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

Reply via email to