Skip to content

[NFC][sanitizer] Move InitTlsSize into InitializePlatformEarly #108921

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions compiler-rt/lib/asan/asan_rtl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -478,9 +478,6 @@ static bool AsanInitInternal() {
if (flags()->start_deactivated)
AsanDeactivate();

// interceptors
InitTlsSize();

// Create main thread.
AsanThread *main_thread = CreateMainThread();
CHECK_EQ(0, main_thread->tid());
Expand Down
2 changes: 2 additions & 0 deletions compiler-rt/lib/dfsan/dfsan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1262,6 +1262,8 @@ static void DFsanInit(int argc, char **argv, char **envp) {

CheckASLR();

InitializePlatformEarly();

if (!InitShadowWithReExec(dfsan_get_track_origins())) {
Printf("FATAL: DataflowSanitizer can not mmap the shadow memory.\n");
DumpProcessMap();
Expand Down
4 changes: 2 additions & 2 deletions compiler-rt/lib/hwasan/hwasan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -357,8 +357,6 @@ __attribute__((constructor(0))) void __hwasan_init() {
hwasan_init_is_running = 1;
SanitizerToolName = "HWAddressSanitizer";

InitTlsSize();

CacheBinaryName();
InitializeFlags();

Expand All @@ -367,6 +365,8 @@ __attribute__((constructor(0))) void __hwasan_init() {

__sanitizer_set_report_path(common_flags()->log_path);

InitializePlatformEarly();

AndroidTestTlsSlot();

DisableCoreDumperIfNecessary();
Expand Down
2 changes: 1 addition & 1 deletion compiler-rt/lib/lsan/lsan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,10 @@ extern "C" void __lsan_init() {
CacheBinaryName();
AvoidCVE_2016_2143();
InitializeFlags();
InitializePlatformEarly();
InitCommonLsan();
InitializeAllocator();
ReplaceSystemMalloc();
InitTlsSize();
InitializeInterceptors();
InitializeThreads();
InstallDeadlySignalHandlers(LsanOnDeadlySignal);
Expand Down
3 changes: 0 additions & 3 deletions compiler-rt/lib/memprof/memprof_rtl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -213,9 +213,6 @@ static void MemprofInitInternal() {

InitializeCoverage(common_flags()->coverage, common_flags()->coverage_dir);

// interceptors
InitTlsSize();

// Create main thread.
MemprofThread *main_thread = CreateMainThread();
CHECK_EQ(0, main_thread->tid());
Expand Down
3 changes: 2 additions & 1 deletion compiler-rt/lib/msan/msan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -457,10 +457,11 @@ void __msan_init() {

__sanitizer_set_report_path(common_flags()->log_path);

InitializePlatformEarly();

InitializeInterceptors();
InstallAtForkHandler();
CheckASLR();
InitTlsSize();
InstallDeadlySignalHandlers(MsanOnDeadlySignal);
InstallAtExitHandler(); // Needs __cxa_atexit interceptor.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ namespace __sanitizer {
#if !SANITIZER_WINDOWS
# if SANITIZER_LINUX
void LogMessageOnPrintf(const char *str) {}
void InitTlsSize() {}
# endif
void WriteToSyslog(const char *buffer) {}
void Abort() { internal__exit(1); }
Expand Down
1 change: 0 additions & 1 deletion compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ void DisableCoreDumperIfNecessary() {}
void InstallDeadlySignalHandlers(SignalHandlerType handler) {}
void SetAlternateSignalStack() {}
void UnsetAlternateSignalStack() {}
void InitTlsSize() {}

bool SignalContext::IsStackOverflow() const { return false; }
void SignalContext::DumpAllRegisters(void *context) { UNIMPLEMENTED(); }
Expand Down
4 changes: 1 addition & 3 deletions compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2672,9 +2672,7 @@ static void GetPcSpBp(void *context, uptr *pc, uptr *sp, uptr *bp) {

void SignalContext::InitPcSpBp() { GetPcSpBp(context, &pc, &sp, &bp); }

void InitializePlatformEarly() {
// Do nothing.
}
void InitializePlatformEarly() { InitTlsSize(); }

void CheckASLR() {
# if SANITIZER_NETBSD
Expand Down
7 changes: 5 additions & 2 deletions compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -228,9 +228,12 @@ void InitTlsSize() {

# if defined(__aarch64__) || defined(__x86_64__) || \
defined(__powerpc64__) || defined(__loongarch__)
void *get_tls_static_info = dlsym(RTLD_DEFAULT, "_dl_get_tls_static_info");
auto *get_tls_static_info = (void (*)(size_t *, size_t *))dlsym(
RTLD_DEFAULT, "_dl_get_tls_static_info");
size_t tls_align;
((void (*)(size_t *, size_t *))get_tls_static_info)(&g_tls_size, &tls_align);
// Can be null if static link.
if (get_tls_static_info)
get_tls_static_info(&g_tls_size, &tls_align);
# endif
}
# else
Expand Down
3 changes: 0 additions & 3 deletions compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -545,9 +545,6 @@ uptr GetTlsSize() {
return 0;
}

void InitTlsSize() {
}

uptr TlsBaseAddr() {
uptr segbase = 0;
#if defined(__x86_64__)
Expand Down
3 changes: 0 additions & 3 deletions compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -873,9 +873,6 @@ uptr GetTlsSize() {
return 0;
}

void InitTlsSize() {
}

void GetThreadStackAndTls(bool main, uptr *stk_begin, uptr *stk_end,
uptr *tls_begin, uptr *tls_end) {
# if SANITIZER_GO
Expand Down
1 change: 0 additions & 1 deletion compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,6 @@ void InitializePlatform() {
Die();
}

InitTlsSize();
#endif // !SANITIZER_GO
}

Expand Down
2 changes: 1 addition & 1 deletion compiler-rt/lib/ubsan/ubsan_init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ static void CommonStandaloneInit() {
SanitizerToolName = GetSanititizerToolName();
CacheBinaryName();
InitializeFlags();
__sanitizer::InitializePlatformEarly();
__sanitizer_set_report_path(common_flags()->log_path);
__sanitizer::InitializePlatformEarly();
AndroidLogInit();
InitializeCoverage(common_flags()->coverage, common_flags()->coverage_dir);
CommonInit();
Expand Down
Loading