[VCRUNTIME] Add TLS callback support

This commit is contained in:
Timo Kreuzer 2025-01-30 10:11:38 +02:00
parent 7f050e0a6d
commit 32c349d30e
3 changed files with 55 additions and 0 deletions

View file

@ -38,6 +38,20 @@ extern "C" {
#pragma section(".CRT$XPZ", long, read)
#pragma section(".CRT$XTA", long, read)
#pragma section(".CRT$XTZ", long, read)
#pragma section(".CRT$XDA",long,read)
#pragma section(".CRT$XDC",long,read)
#pragma section(".CRT$XDZ",long,read)
#pragma section(".CRT$XLA",long,read) // TLS callback start
#pragma section(".CRT$XLC",long,read) // TLS constructors
#pragma section(".CRT$XLD",long,read) // TLS destructors
#pragma section(".CRT$XLZ",long,read) // TLS callback end
#pragma section(".tls",long,read,write)
#pragma section(".tls$AAA",long,read,write)
#pragma section(".tls$ZZZ",long,read,write)
#endif
extern _PIFV __xi_a[];
@ -51,6 +65,8 @@ extern _PVFV __xt_z[];
extern char __ImageBase;
extern const IMAGE_TLS_DIRECTORY _tls_used;
#define CRT_WARNING_DISABLE_PUSH(wn, message) \
__pragma(warning(push)) \
__pragma(warning(disable: wn))