mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 13:00:06 +00:00
Add ARM EABI build attributes.
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.
This commit is contained in:
parent
fbc4c20a80
commit
274895575e
@ -1,3 +1,12 @@
|
||||
2009-10-22 Daniel Gutson <dgutson@codesourcery.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2009-10-22 Andrew Stubbs <ams@codesourcery.com>
|
||||
Julian Brown <julian@codesourcery.com>
|
||||
|
||||
|
9
sysdeps/arm/eabi/abi-note.S
Normal file
9
sysdeps/arm/eabi/abi-note.S
Normal file
@ -0,0 +1,9 @@
|
||||
/* 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
|
||||
|
||||
#include <csu/abi-note.S>
|
||||
|
@ -58,6 +58,16 @@
|
||||
...
|
||||
NULL
|
||||
*/
|
||||
|
||||
#if defined(__ARM_EABI__)
|
||||
/* 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
|
||||
#endif
|
||||
|
||||
#if defined(__thumb2__)
|
||||
.thumb
|
||||
.syntax unified
|
||||
|
@ -105,4 +105,13 @@
|
||||
#define mcount _mcount
|
||||
#endif
|
||||
|
||||
#if defined(__ARM_EABI__)
|
||||
/* 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
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
|
6
sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S
Normal file
6
sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S
Normal file
@ -0,0 +1,6 @@
|
||||
/* 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
|
Loading…
Reference in New Issue
Block a user