2001-02-27 Philip Blundell <pb@futuretv.com>

* arm.h: Add new definitions from ARM document SWS ESPC 0003 B-01.
	(EF_PIC, et al.): Rename to EF_ARM_xx.
This commit is contained in:
Phil Blundell 2001-02-28 10:11:36 +00:00
parent d8f92b1f63
commit 2a7a46249e
2 changed files with 34 additions and 18 deletions

View File

@ -1,3 +1,8 @@
2001-02-27 Philip Blundell <pb@futuretv.com>
* arm.h: Add new definitions from ARM document SWS ESPC 0003 B-01.
(EF_PIC, et al.): Rename to EF_ARM_xx.
2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
* common.h: Add linux target for S/390.

View File

@ -1,5 +1,5 @@
/* ARM ELF support for BFD.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@ -25,29 +25,32 @@
/* Processor specific flags for the ELF header e_flags field. */
#define EF_ARM_RELEXEC 0x01
#define EF_ARM_HASENTRY 0x02
#define EF_INTERWORK 0x04
#define EF_APCS_26 0x08
#define EF_APCS_FLOAT 0x10
#define EF_PIC 0x20
#define EF_ALIGN8 0x40 /* 8-bit structure alignment is in use. */
#define EF_NEW_ABI 0x80
#define EF_OLD_ABI 0x100
#define EF_SOFT_FLOAT 0x200
#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 /* 8-bit structure alignment is in use. */
#define EF_ARM_NEW_ABI 0x80
#define EF_ARM_OLD_ABI 0x100
#define EF_ARM_SOFT_FLOAT 0x200
/* Other constants defined in the ARM ELF spec. version A-08. */
/* Other constants defined in the ARM ELF spec. version B-01. */
#define EF_ARM_SYMSARESORTED 0x04 /* NB conflicts with EF_INTERWORK */
#define EF_ARM_DYNSYMSUSESEGIDX 0x08 /* NB conflicts with EF_APCS26 */
#define EF_ARM_MAPSYMSFIRST 0x10 /* NB conflicts with EF_APCS_FLOAT */
#define EF_ARM_EABIMASK 0xFF000000
#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
/* Local aliases for some flags to match names used by COFF port. */
#define F_INTERWORK EF_INTERWORK
#define F_APCS26 EF_APCS_26
#define F_APCS_FLOAT EF_APCS_FLOAT
#define F_PIC EF_PIC
#define F_SOFT_FLOAT EF_SOFT_FLOAT
#define F_INTERWORK EF_ARM_INTERWORK
#define F_APCS26 EF_ARM_APCS_26
#define F_APCS_FLOAT EF_ARM_APCS_FLOAT
#define F_PIC EF_ARM_PIC
#define F_SOFT_FLOAT EF_ARM_SOFT_FLOAT
/* Additional symbol types for Thumb. */
#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
@ -109,13 +112,21 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
FAKE_RELOC (LAST_INVALID_RELOC, 249)
#else /* not OLD_ARM_ABI */
FAKE_RELOC (FIRST_INVALID_RELOC1, 28)
FAKE_RELOC (LAST_INVALID_RELOC1, 99)
FAKE_RELOC (LAST_INVALID_RELOC1, 31)
RELOC_NUMBER (R_ARM_ALU_PCREL7_0, 32)
RELOC_NUMBER (R_ARM_ALU_PCREL15_8, 33)
RELOC_NUMBER (R_ARM_ALU_PCREL23_15, 34)
RELOC_NUMBER (R_ARM_LDR_SBREL11_0, 35)
RELOC_NUMBER (R_ARM_ALU_SBREL19_12, 36)
RELOC_NUMBER (R_ARM_ALU_SBREL27_20, 37)
FAKE_RELOC (FIRST_INVALID_RELOC2, 38)
FAKE_RELOC (LAST_INVALID_RELOC2, 99)
RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100)
RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101)
RELOC_NUMBER (R_ARM_THM_PC11, 102) /* Cygnus extension to abi: Thumb unconditional branch. */
RELOC_NUMBER (R_ARM_THM_PC9, 103) /* Cygnus extension to abi: Thumb conditional branch. */
FAKE_RELOC (FIRST_INVALID_RELOC2, 104)
FAKE_RELOC (LAST_INVALID_RELOC2, 248)
FAKE_RELOC (FIRST_INVALID_RELOC3, 104)
FAKE_RELOC (LAST_INVALID_RELOC3, 248)
RELOC_NUMBER (R_ARM_RXPC25, 249)
#endif /* not OLD_ARM_ABI */
RELOC_NUMBER (R_ARM_RSBREL32, 250)