diff options
author | Ryan Prichard <rprichard@google.com> | 2019-01-01 18:53:48 -0800 |
---|---|---|
committer | Ryan Prichard <rprichard@google.com> | 2019-01-16 16:52:47 -0800 |
commit | e5e69e09128e2e89bcafec45be343674adf983bf (patch) | |
tree | 3bddb0f2bd3ccb8e6cbb6b55adbe121d6936f825 /linker/linker_main.cpp | |
parent | 977e47d01897be06c2b5fc30267d29f86eeb5fc1 (diff) |
Record TLS modules and layout static TLS memory
Bug: http://b/78026329
Test: bionic unit tests
Change-Id: Ibf1bf5ec864c7830e4cd1cb882842b644e6182ae
Diffstat (limited to 'linker/linker_main.cpp')
-rw-r--r-- | linker/linker_main.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp index 9b4ce47c3..b0c27dcd6 100644 --- a/linker/linker_main.cpp +++ b/linker/linker_main.cpp @@ -415,6 +415,8 @@ static ElfW(Addr) linker_main(KernelArgumentBlock& args, const char* exe_to_load } } + linker_setup_exe_static_tls(g_argv[0]); + // Load ld_preloads and dependencies. std::vector<const char*> needed_library_name_list; size_t ld_preloads_count = 0; @@ -452,8 +454,7 @@ static ElfW(Addr) linker_main(KernelArgumentBlock& args, const char* exe_to_load si->increment_ref_count(); } - layout_linker_static_tls(); - + linker_finalize_static_tls(); __libc_init_main_thread_final(); if (!get_cfi_shadow()->InitialLinkDone(solist)) __linker_cannot_link(g_argv[0]); |