XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Minor
    • None
    • CRT

    Description

      • Separate CRT into a number of sub-libraries (preferably object libraries object libraries don't work, because they get directly linked into the module)
      • crt_compilersupport: contains _chkstk, __allmull etc., and all compiler/architecture dependent support routines linked to all modules by default
      • crt_common (potentially devided into crt_math, crt_stdio, crt_stdlib, etc), which are binary identical in CRT/LIBCNTPR
      • crt_printf (basic routines in one lib, separate libs for individually compiled streamout/wstreamout for msvcrt, ntdll, user32, crtdll)
      • crt (links all common stuff plus individual stuff)
      • libcntpr (see above)
      • msvcrtex links startup code + crt_compilersupport
      • cleanup duplicates (like malloc and friends)
      • stop linking ntdll to most modules, use crt_compilersupport instead
      • optional: make ntdll crt exports private and create an additional ntdll_crt importlib (generate_importlib()) to explicitly select these in native apps, so that msvcrt can no longer accidentally use these
      • fix crtdll to use the correct printf functions, don't import the generic CRT and don't reinitialize tls etc., instead forward to msvcrt (need to check usage of globals, also: do we need to explicitly import from msvcrt?)
      • We might need to generally use full versions of all functions that use globabs, to allow the dll to have a custom state, when 2 different CRT libs are loaded (applies to crtdll.dll/msvcrt*.dll, not to version specific versions of msvcrt.dll)

      Attachments

        Activity

          People

            ThePhysicist Timo Kreuzer
            ThePhysicist Timo Kreuzer
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: