82a0841468
Switch the __x86.get_pc_thunk.bx functions from .gnu.linkonce to comdat section groups. lld doesn't implement .gnu.linkonce and will instead discard the input sections. It might produce a faulty binary that has no get_pc_thunk function in it, which would crash. Normally, these functions are generated by GCC and are present in many object files compiled with PIC. Clang doesn't use them, and instead initializes the PIC base register with a "call 1f; 1: pop %ebx" pair. I also added cfi_startproc / cfi_endproc to be consistent with current GCC output. I marked this CL with do-not-merge because the code it touches has been removed in the next release, so it won't merge. I reviewed the automerger graph, and this do-not-merge CL: - will be applied to qt-qpr1-dev-plus-aosp (which needs the CL) - won't be applied to rvc-dev-plus-aosp (which doesn't need the CL) https://android-build.googleplex.com/builds/automerger/graph/project/googleplex-android/platform/system/core Bug: http://b/154376560 Bug: https://bugs.llvm.org/show_bug.cgi?id=45594 Test: VM boots Change-Id: I681c4c46503aff65f32a22c9da15397a42b67183 |
||
---|---|---|
.. | ||
arch-arm | ||
arch-arm64 | ||
arch-x86 | ||
arch-x86_64 | ||
include | ||
include_vndk/cutils | ||
Android.bp | ||
android_get_control_env.h | ||
android_get_control_file.cpp | ||
android_get_control_file_test.cpp | ||
android_get_control_socket_test.cpp | ||
android_reboot.cpp | ||
ashmem-dev.cpp | ||
ashmem-host.cpp | ||
ashmem_test.cpp | ||
canned_fs_config.cpp | ||
config_utils.cpp | ||
fs.cpp | ||
fs_config.cpp | ||
fs_config.h | ||
fs_config_test.cpp | ||
hashmap.cpp | ||
iosched_policy.cpp | ||
KernelLibcutilsTest.xml | ||
klog.cpp | ||
load_file.cpp | ||
memset_test.cpp | ||
MODULE_LICENSE_APACHE2 | ||
multiuser.cpp | ||
multiuser_test.cpp | ||
native_handle.cpp | ||
native_handle_test.cpp | ||
NOTICE | ||
OWNERS | ||
partition_utils.cpp | ||
properties.cpp | ||
properties_test.cpp | ||
qtaguid.cpp | ||
record_stream.cpp | ||
sched_policy_test.cpp | ||
socket_inaddr_any_server_unix.cpp | ||
socket_inaddr_any_server_windows.cpp | ||
socket_local_client_unix.cpp | ||
socket_local_server_unix.cpp | ||
socket_local_unix.h | ||
socket_network_client_unix.cpp | ||
socket_network_client_windows.cpp | ||
sockets.cpp | ||
sockets_test.cpp | ||
sockets_unix.cpp | ||
sockets_windows.cpp | ||
str_parms.cpp | ||
str_parms_test.cpp | ||
strlcpy.c | ||
threads.cpp | ||
trace-container.cpp | ||
trace-dev.cpp | ||
trace-dev.inc | ||
trace-dev_test.cpp | ||
trace-host.cpp | ||
uevent.cpp |