mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-25 12:11:10 +00:00
Rewrite abi-note.S in C.
Using C code allows the compiler to add target specific object file markings based on CFLAGS. The arm specific abi-note.S is removed and similar object file fix up will be avoided on AArch64 with standard branch protection.
This commit is contained in:
parent
c7aa8596de
commit
dbfefbdc3a
@ -53,6 +53,8 @@ offset length contents
|
||||
identify the earliest release of that OS that supports this ABI.
|
||||
See abi-tags (top level) for details. */
|
||||
|
||||
#include <link.h>
|
||||
#include <stdint.h>
|
||||
#include <config.h>
|
||||
#include <abi-tag.h> /* OS-specific ABI tag value */
|
||||
|
||||
@ -60,13 +62,16 @@ offset length contents
|
||||
name begins with `.note' and creates a PT_NOTE program header entry
|
||||
pointing at it. */
|
||||
|
||||
.section ".note.ABI-tag", "a"
|
||||
.p2align 2
|
||||
.long 1f - 0f /* name length */
|
||||
.long 3f - 2f /* data length */
|
||||
.long 1 /* note type */
|
||||
0: .asciz "GNU" /* vendor name */
|
||||
1: .p2align 2
|
||||
2: .long __ABI_TAG_OS /* note data: the ABI tag */
|
||||
.long __ABI_TAG_VERSION
|
||||
3: .p2align 2 /* pad out section */
|
||||
__attribute__ ((used, aligned (4), section (".note.ABI-tag")))
|
||||
static const struct
|
||||
{
|
||||
ElfW(Nhdr) nhdr;
|
||||
char name[4];
|
||||
int32_t desc[4];
|
||||
} __abi_tag = {
|
||||
{ .n_namesz = sizeof __abi_tag.name,
|
||||
.n_descsz = sizeof __abi_tag.desc,
|
||||
.n_type = 1 },
|
||||
"GNU",
|
||||
{ __ABI_TAG_OS, __ABI_TAG_VERSION }
|
||||
};
|
@ -1,8 +0,0 @@
|
||||
/* 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>
|
Loading…
Reference in New Issue
Block a user