• Type: Improvement
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: CRT
    • Labels:


      • Separate CRT into a number of sub-libraries (preferably object libraries)
      • 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)
      • 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)




            • Assignee:
              ThePhysicist Timo Kreuzer
              ThePhysicist Timo Kreuzer
            • Votes:
              1 Vote for this issue
              2 Start watching this issue


              • Created: