From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1TQGpK-0001Fg-6W for mharc-grub-devel@gnu.org; Mon, 22 Oct 2012 08:09:50 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45016) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQGpC-0001F0-Nt for grub-devel@gnu.org; Mon, 22 Oct 2012 08:09:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TQGp6-00045Y-K6 for grub-devel@gnu.org; Mon, 22 Oct 2012 08:09:42 -0400 Received: from service87.mimecast.com ([91.220.42.44]:54690) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQGp6-00045E-9T for grub-devel@gnu.org; Mon, 22 Oct 2012 08:09:36 -0400 Received: from emea-cam-gw1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) (Using TLS) by service87.mimecast.com; Mon, 22 Oct 2012 13:09:34 +0100 Received: from [10.1.69.77] (10.1.2.13) by emea-cam-gw1.Emea.Arm.com (10.1.248.203) with Microsoft SMTP Server id 8.2.254.0; Mon, 22 Oct 2012 13:09:31 +0100 Message-ID: <50853779.5020107@arm.com> Date: Mon, 22 Oct 2012 13:09:29 +0100 From: Leif Lindholm User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120827 Thunderbird/15.0 MIME-Version: 1.0 To: grub-devel@gnu.org Subject: [PATCH] update ARM definitions in elf.h X-MC-Unique: 112102213093409001 Content-Type: multipart/mixed; boundary="------------010301090402050706090008" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 91.220.42.44 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Oct 2012 12:09:49 -0000 --------------010301090402050706090008 Content-Type: text/plain; charset=WINDOWS-1252; format=flowed Content-Transfer-Encoding: quoted-printable Updated definitions imported from binutils-2.22 include/elf/arm.h. --------------010301090402050706090008 Content-Type: text/x-patch; name=grub-arm-elf-h-update.patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="grub-arm-elf-h-update.patch" =3D=3D=3D modified file 'include/grub/elf.h' --- include/grub/elf.h=092012-06-18 19:09:57 +0000 +++ include/grub/elf.h=092012-10-22 11:52:03 +0000 @@ -145,6 +145,7 @@ #define ELFOSABI_TRU64=09=0910=09/* Compaq TRU64 UNIX. */ #define ELFOSABI_MODESTO=0911=09/* Novell Modesto. */ #define ELFOSABI_OPENBSD=0912=09/* OpenBSD. */ +#define ELFOSABI_ARM_AEABI=0964=09/* ARM EABI */ #define ELFOSABI_ARM=09=0997=09/* ARM */ #define ELFOSABI_STANDALONE=09255=09/* Standalone (embedded) application *= / =20 @@ -2005,15 +2006,18 @@ /* ARM specific declarations */ =20 /* Processor specific flags for the ELF header e_flags field. */ -#define EF_ARM_RELEXEC 0x01 -#define EF_ARM_HASENTRY 0x02 -#define EF_ARM_INTERWORK 0x04 -#define EF_ARM_APCS_26 0x08 -#define EF_ARM_APCS_FLOAT 0x10 -#define EF_ARM_PIC 0x20 -#define EF_ARM_ALIGN8 0x40=09=09/* 8-bit structure alignment is in us= e */ -#define EF_ARM_NEW_ABI 0x80 -#define EF_ARM_OLD_ABI 0x100 +#define EF_ARM_RELEXEC =090x01 +#define EF_ARM_HASENTRY =090x02 +#define EF_ARM_INTERWORK =090x04 +#define EF_ARM_APCS_26 =090x08 +#define EF_ARM_APCS_FLOAT =090x10 +#define EF_ARM_PIC =090x20 +#define EF_ARM_ALIGN8 =090x40 /* 8-bit structure alignment is in use = */ +#define EF_ARM_NEW_ABI =090x80 +#define EF_ARM_OLD_ABI =090x100 +#define EF_ARM_SOFT_FLOAT=090x200 +#define EF_ARM_VFP_FLOAT=090x400 +#define EF_ARM_MAVERICK_FLOAT=090x800 =20 /* Other constants defined in the ARM ELF spec. version B-01. */ /* NB. These conflict with values defined above. */ @@ -2022,13 +2026,21 @@ #define EF_ARM_MAPSYMSFIRST=090x10 #define EF_ARM_EABIMASK=09=090XFF000000 =20 +/* Constants defined in AAELF. */ +#define EF_ARM_BE8=09 0x00800000 +#define EF_ARM_LE8=09 0x00400000 + #define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) #define EF_ARM_EABI_UNKNOWN 0x00000000 #define EF_ARM_EABI_VER1 0x01000000 #define EF_ARM_EABI_VER2 0x02000000 +#define EF_ARM_EABI_VER3 0x03000000 +#define EF_ARM_EABI_VER4 0x04000000 +#define EF_ARM_EABI_VER5 0x05000000 =20 /* Additional symbol types for Thumb */ -#define STT_ARM_TFUNC 0xd +#define STT_ARM_TFUNC=09 STT_LOPROC /* A Thumb function. */ +#define STT_ARM_16BIT=09 STT_HIPROC /* A Thumb label. */ =20 /* ARM-specific values for sh_flags */ #define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point= */ @@ -2038,6 +2050,17 @@ /* ARM-specific program header flags */ #define PF_ARM_SB 0x10000000 /* Segment contains the location =09=09=09=09=09 addressed by the static base */ +#define PF_ARM_PI=09 0x20000000 /* Position-independent segment. */ +#define PF_ARM_ABS=09 0x40000000 /* Absolute segment. */ + +/* Processor specific values for the Phdr p_type field. */ +#define PT_ARM_EXIDX=09=09(PT_LOPROC + 1)=09/* ARM unwind segment. */ + +/* Processor specific values for the Shdr sh_type field. */ +#define SHT_ARM_EXIDX=09=09(SHT_LOPROC + 1) /* ARM unwind section. */ +#define SHT_ARM_PREEMPTMAP=09(SHT_LOPROC + 2) /* Preemption details. */ +#define SHT_ARM_ATTRIBUTES=09(SHT_LOPROC + 3) /* ARM attributes section. = */ + =20 /* ARM relocs. */ #define R_ARM_NONE=09=090=09/* No reloc */ @@ -2050,7 +2073,7 @@ #define R_ARM_THM_ABS5=09=097 #define R_ARM_ABS8=09=098=09/* Direct 8 bit */ #define R_ARM_SBREL32=09=099 -#define R_ARM_THM_PC22=09=0910 +#define R_ARM_THM_CALL=09=0910 #define R_ARM_THM_PC8=09=0911 #define R_ARM_AMP_VCALL9=0912 #define R_ARM_SWI24=09=0913 @@ -2065,16 +2088,36 @@ #define R_ARM_GOTPC=09=0925=09/* 32 bit PC relative offset to GOT */ #define R_ARM_GOT32=09=0926=09/* 32 bit GOT entry */ #define R_ARM_PLT32=09=0927=09/* 32 bit PLT address */ +#define R_ARM_CALL=09=0928 +#define R_ARM_JUMP24=09=0929 +#define R_ARM_THM_JUMP24=0930 +#define R_ARM_BASE_ABS=09=0931 #define R_ARM_ALU_PCREL_7_0=0932 #define R_ARM_ALU_PCREL_15_8=0933 #define R_ARM_ALU_PCREL_23_15=0934 #define R_ARM_LDR_SBREL_11_0=0935 #define R_ARM_ALU_SBREL_19_12=0936 #define R_ARM_ALU_SBREL_27_20=0937 +#define R_ARM_TLS_GOTDESC=0990 +#define R_ARM_TLS_CALL=09=0991 +#define R_ARM_TLS_DESCSEQ=0992 +#define R_ARM_THM_TLS_CALL=0993 #define R_ARM_GNU_VTENTRY=09100 #define R_ARM_GNU_VTINHERIT=09101 #define R_ARM_THM_PC11=09=09102=09/* thumb unconditional branch */ #define R_ARM_THM_PC9=09=09103=09/* thumb conditional branch */ +#define R_ARM_TLS_GD32=09=09104=09/* PC-rel 32 bit for global dynamic +=09=09=09=09=09 thread local data */ +#define R_ARM_TLS_LDM32=09=09105=09/* PC-rel 32 bit for local dynamic +=09=09=09=09=09 thread local data */ +#define R_ARM_TLS_LDO32=09=09106=09/* 32 bit offset relative to TLS +=09=09=09=09=09 block */ +#define R_ARM_TLS_IE32=09=09107=09/* PC-rel 32 bit for GOT entry of +=09=09=09=09=09 static TLS block offset */ +#define R_ARM_TLS_LE32=09=09108=09/* 32 bit offset relative to static +=09=09=09=09=09 TLS block */ +#define=09R_ARM_THM_TLS_DESCSEQ=09129 +#define R_ARM_IRELATIVE=09=09160 #define R_ARM_RXPC25=09=09249 #define R_ARM_RSBREL32=09=09250 #define R_ARM_THM_RPC22=09=09251 --------------010301090402050706090008--