8bd83d8c98
The address of contents is only guaranteed to be aligned to 4KB on 4KB page size systems, but the compiler was generating code that assumed it to be aligned to 64KB, which broke on a 4KB page size system. This probably ought to be fixed, either in the compiler so it can't generate code assuming such large alignments (it's hard to see what useful optimizations are possible by assuming such large alignments anyway) or by making bionic respect the p_align field in PT_LOAD, but for now let's hide the address behind an asm statement that the compiler can't see through. As a result of this change, the code generation for the function __bionic_setjmp_cookie_get on x86 changed so that it clobbers ecx, as allowed by the calling convention. However, the x86 assembly implementation for setjmp was assuming that it wouldn't be clobbered. Fix it. Bug: 332534664 Change-Id: I07fa737d8cf892d27ce08c305dafb0a53fef36cb |
||
---|---|---|
.. | ||
__bionic_clone.S | ||
__libc_init_sysinfo.cpp | ||
__libc_int0x80.S | ||
__set_tls.cpp | ||
__x86.get_pc_thunk.S | ||
_exit_with_stack_teardown.S | ||
atexit.h | ||
libcrt_compat.c | ||
setjmp.S | ||
syscall.S | ||
vfork.S |