aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/libgcc/emutls.c
Commit message (Collapse)AuthorAgeFilesLines
* Add __emutls_unregister_key functionRyan Prichard2018-06-051-4/+7
| | | | | | | | | | | | | | | | Replace the existing __attribute__((destructor)) function, unregister_emutls_key, with a function that something else must call explicitly. We don't want the pthread key deleted at program exit, because it's unnecessary and because it may delete the key before other tls-using cleanup code runs. Exposing __emutls_unregister_key allows limiting the cleanup to dlclose (e.g. by calling it only from crtbegin_so.c). Reset emutls_key_created so multiple calls to __emutls_unregister_key are safe. Bug: b/80453944 Test: manual Change-Id: I82d13614ae8042d0501fd2ca64f0ef6189669905
* Delay emutls deallocation for one roundRyan Prichard2018-05-211-8/+41
| | | | | | | | | | | | | With Android/Bionic, delay deallocation to round 2 of 4. It must run after C++ thread_local destructors have been called, but before the final 2 rounds, because emutls calls free, and jemalloc then needs another 2 rounds to free its thread-specific data. Bug: https://github.com/android-ndk/ndk/issues/687 Bug: b/78022094 Test: manual Test: ./run_tests.py --rebuild --filter emutls-dealloc Change-Id: I01bd634d97b7d22161b5cc8ca71b3cb94064a03e
* [GCC] Fix #endif problem in libgcc/emutls.cCaroline Tice2018-02-051-1/+1
| | | | | | | | | | | | Currently in emutls.c 'emutls_key_created' is defined within part of an ifdef, but is accessed outside the ifdef, which can cause issues in builds where the ifdef is not taken. This CL moves the #endif to include the new function that accesses 'emutls_key_created' so that all references to it are within the defining if-def. Bug: b/72942688 Test: Fix tested in ChromeOS. Change-Id: Ic1d6760d116b63abaef18f95e38de42af30952e4
* [libgcc] Fix emutls.c to not leak pthread keys.Caroline Tice2018-01-191-0/+10
| | | | | | Bug:b/71814577 Test:Built toolchain w/change and successfully tested building both platform and kernel images with new toolchain for marlin (pixel) device. Change-Id: Ia0c6944ce1d78b5bd57d65f705a3f7a59c944202
* Initial checkin of GCC 4.9.0 from trunk (r208799).Ben Cheng2014-03-251-0/+203
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba