cc9b100e97
Android's current lld build has a hack that overaligns TLS segments, but it broke glibc when it produced TLS segments where (p_vaddr % p_align) was non-zero. Move the hack into Bionic's crtbegin instead. It will emit a 0-sized, 64-byte alignment TLS segment into executables that don't use TLS, but that should be harmless. This variant of the hack is compatible with the gold and lld linkers. The ld.bfd linker will optimize the .tdata output section out if its size is zero, preventing the overalignment in an executable that only has .tbss sections. This problem could be fixed by adding a ". = .;" statement inside .tdata in ld.bfd's linker script. See discussion on https://reviews.llvm.org/D61824. Bug: https://bugs.llvm.org/show_bug.cgi?id=41527 Test: bionic unit tests, boot a device Change-Id: I34df8b5594b6518d4590e4861e3d0b74d6fa754e |
||
---|---|---|
.. | ||
__dso_handle.h | ||
__dso_handle_so.h | ||
asm_multiarch.h | ||
atexit.h | ||
crtbegin.c | ||
crtbegin_so.c | ||
crtbrand.S | ||
crtend.S | ||
crtend_so.S | ||
pthread_atfork.h |