diff options
author | Anton Kolesov <Anton.Kolesov@synopsys.com> | 2016-06-22 20:48:29 +0300 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-06-23 20:48:25 +0200 |
commit | ca6271bd5f595871881447dd40b220c0e5abfb37 (patch) | |
tree | f6267799ee4f3c37ce544323e8e9e7dad639e6cd | |
parent | bc5949fd4f8cddf4eee74492c86a8a72f4dee0e7 (diff) |
ARC: Implement .note.ABI-tag section in crt1.S
Linux Standard Base specifies section .note.ABI-tag that can be considered
as a marker for ELF files targeted to Linux systems. See
https://refspecs.linuxfoundation.org/LSB_1.2.0/gLSB/noteabitag.html
This section, for example, is used by the GDB to identify Linux ELFs as
compared to baremetal ELFs that do not have this section.
Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com>
-rw-r--r-- | libc/sysdeps/linux/arc/crt1.S | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/arc/crt1.S b/libc/sysdeps/linux/arc/crt1.S index 95c41f888..0fe3cf997 100644 --- a/libc/sysdeps/linux/arc/crt1.S +++ b/libc/sysdeps/linux/arc/crt1.S @@ -55,3 +55,18 @@ __start: /* Should never get here.... */ flag 1 .size __start,.-__start + +/* Implement a .note.ABI-tag section that is mandatory for Linux executables + according to LSB. See: + https://refspecs.linuxfoundation.org/LSB_1.2.0/gLSB/noteabitag.html. + Also: libc/sysdeps/linux/avr32/crt1.S. */ +.section ".note.ABI-tag", "a" + .align 4 + .long 1f - 0f /* Name length */ + .long 3f - 2f /* Data length */ + .long 1 /* Note type */ +0: .asciz "GNU" /* Vendor name */ +1: .align 4 +2: .long 0 /* Note data: Linux executable */ + .long 3,9,0 /* Earliest compatible kernel */ +3: .align 4 /* Pad out section */ |