platform_bionic/libc/arch-x86/bionic
Ryan Prichard 27475b5105 Initialize __libc_sysinfo early on.
__libc_sysinfo is hidden, so accessing it doesn't require a relocated GOT.
It is important not to have a relocatable initializer on __libc_sysinfo,
because if it did have one, and if we initialized it before relocating the
linker, then on 32-bit x86 (which uses REL rather than RELA), the
relocation step would calculate the wrong addend and overwrite
__libc_sysinfo with garbage.

Asides:

 * It'd be simpler to keep the __libc_sysinfo initializer for static
   executables, but the loader pulls in libc_init_static (even though it
   uses almost none of the code in that file, like __libc_init).

 * The loader has called __libc_init_sysinfo three times by the time it
   has relocated itself. A static executable calls it twice, while libc.so
   calls it only once.

Bug: none
Test: lunch aosp_x86-userdebug ; emulator
Test: adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
Test: adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static
Change-Id: I5944f57847db7191608f4f83dde22b49e279e6cb
2018-05-30 16:44:23 -07:00
..
__bionic_clone.S Use ENTRY_PRIVATE in __bionic_clone assembler. 2016-10-26 17:01:58 -07:00
__libc_init_sysinfo.cpp Initialize __libc_sysinfo early on. 2018-05-30 16:44:23 -07:00
__restore.S [x86,x86_64] Fix libgcc unwinding through signal 2014-10-27 16:14:55 -07:00
__set_tls.cpp <stdbool.h> not necessary in C++. 2017-09-07 13:28:14 -07:00
__stack_chk_fail_local.h Partial revert of "Remove obsolete __stack_chk_fail_local." 2018-01-24 16:37:48 -08:00
_exit_with_stack_teardown.S Hide _exit_with_stack_teardown. 2014-05-16 16:17:44 -07:00
atexit.h Replace .S version of x86 crtfiles with .c version 2012-11-30 17:41:25 +04:00
libgcc_compat.c [MIPS] Add __popcountsi2 to libgcc_compat.c 2016-02-25 14:28:45 -08:00
setjmp.S Fix sigsetjmp/siglongjmp to save/restore RT signals on arm/x86 too. 2018-01-31 17:47:16 -08:00
syscall.S libc: implement kernel vdso syscalls for i386 2016-03-25 14:10:05 -07:00
vfork.S Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00