mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-13 14:50:17 +00:00
274895575e
Ensure that all objects in ARM EABI glibc have the proper EABI build attributes to indicate that 8-byte stack alignment is required and preserved. (GNU ld does not currently give errors for mixing code requiring 8-byte alignment - such as anything built with GCC - and code not marked as preserving it, because of the prevalence of assembly code without proper markers to indicate that alignment is preserved. The ARM RealView linker does give such errors.) The bulk of the markers are accomplished by the change to sysdep.h, but a few .S files do not include sysdep.h. In the case of internal_accept4.S, no code is generated because EABI does not have socketcall, but for completeness a dummy file with the right attributes is used to override the default version in libc. * sysdeps/arm/sysdep.h: (Tag_ABI_align8_preserved, Tag_ABI_align8_needed): Attributes added. * sysdeps/arm/elf/start.S: Likewise. * sysdeps/arm/eabi/abi-note.S: New file. * sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S: New file.
7 lines
223 B
ArmAsm
7 lines
223 B
ArmAsm
/* Tag_ABI_align8_preserved: This code preserves 8-byte
|
|
alignment in any callee. */
|
|
.eabi_attribute 25, 1
|
|
/* Tag_ABI_align8_needed: This code may require 8-byte alignment from
|
|
the caller. */
|
|
.eabi_attribute 24, 1
|