Kaynağa Gözat

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>
Anton Kolesov 8 yıl önce
ebeveyn
işleme
ca6271bd5f
1 değiştirilmiş dosya ile 15 ekleme ve 0 silme
  1. 15 0
      libc/sysdeps/linux/arc/crt1.S

+ 15 - 0
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 */