mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
![Paul Brook](/assets/img/avatar_default.png)
The ARM EABI requires doubleword (8-byte) stack alignment at all public entry points. The patch below makes the bFLT loader honour this. It's always safe to start with a doubleword aligned stack so it doesn't seem worth making this conditional on CONFIG_AEABI. Paul Signed-off-by: Paul Brook <paul@codesourcery.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 lines
641 B
C
18 lines
641 B
C
/*
|
|
* include/asm-arm/flat.h -- uClinux flat-format executables
|
|
*/
|
|
|
|
#ifndef __ARM_FLAT_H__
|
|
#define __ARM_FLAT_H__
|
|
|
|
/* An odd number of words will be pushed after this alignment, so
|
|
deliberately misalign the value. */
|
|
#define flat_stack_align(sp) sp = (void *)(((unsigned long)(sp) - 4) | 4)
|
|
#define flat_argvp_envp_on_stack() 1
|
|
#define flat_old_ram_flag(flags) (flags)
|
|
#define flat_reloc_valid(reloc, size) ((reloc) <= (size))
|
|
#define flat_get_addr_from_rp(rp, relval, flags) get_unaligned(rp)
|
|
#define flat_put_addr_at_rp(rp, val, relval) put_unaligned(val,rp)
|
|
#define flat_get_relocate_addr(rel) (rel)
|
|
|
|
#endif /* __ARM_FLAT_H__ */
|