platform_bionic/libc/arch-x86
Pirama Arumuga Nainar 7b89be78f4 Move __libc_int0x80 to an assembly file
Bug: http://b/157081822

If __libc_int0x80 is in a C/C++ file, Clang's coverage instrumentation
adds instructions to count the number of times it gets executed [1].
With coverage instrumentation, __libc_sysinfo, used on 32-bit x86, is
initialized to the wrong value, causing dl.preinit_system_calls to fail.

Moving the function to an assembly file leaves __libc_sysinfo properly
initialized.

[1] We could change clang so it doesn't instrument functions marked
__attribute__((naked)) as a followup.

Test: `m CLANG_COVERAGE=true NATIVE_COVERAGE_PATHS=bionic` and run
bionic-unit-tests

Change-Id: I73558253512392d345de8d5b66d38bb14b308fdf
2021-02-18 09:52:59 -08:00
..
atom/string x86: Switch get_pc_thunk to comdat 2020-04-20 14:28:10 -07:00
bionic Move __libc_int0x80 to an assembly file 2021-02-18 09:52:59 -08:00
generic/string Use the canonical form of the APL2 boilerplate. 2019-12-12 15:32:10 -08:00
kabylake/string Add avx2 version of wmemset in binoic 2019-07-16 18:06:57 +05:30
silvermont/string x86: Switch get_pc_thunk to comdat 2020-04-20 14:28:10 -07:00
dynamic_function_dispatch.cpp ifuncs: start sharing. 2019-09-17 12:44:41 -07:00
static_function_dispatch.S Add avx2 version of wmemset in binoic 2019-07-16 18:06:57 +05:30