include/elf:
* arm.h: Import complete list of official relocation names and numbers from AAELF. Define FAKE_RELOCs for old names. Remove a few old names no longer used anywhere. bfd: * elf32-arm.c: Wherever possible, use official reloc names from AAELF. (elf32_arm_howto_table, elf32_arm_tls_gd32_howto) (elf32_arm_tls_ldo32_howto, elf32_arm_tls_ldm32_howto) (elf32_arm_tls_le32_howto, elf32_arm_tls_ie32_howto) (elf32_arm_vtinherit_howto, elf32_arm_vtentry_howto) (elf32_arm_pc11_howto, elf32_arm_thm_pc9_howto, elf32_arm_got_prel) (elf32_arm_r_howto): Replace with elf32_arm_howto_table_1, elf32_arm_howto_table_2, and elf32_arm_howto_table_3. Add many new relocations from AAELF. (elf32_arm_howto_from_type): Update to match. (elf32_arm_reloc_map): Add entries for R_ARM_THM_JUMP24, R_ARM_THM_JUMP11, R_ARM_THM_JUMP19, R_ARM_THM_JUMP8, R_ARM_THM_JUMP6, R_ARM_GNU_VTINHERIT, and R_ARM_GNU_VTENTRY. (elf32_arm_reloc_type_lookup): Use elf32_arm_howto_from_type. (elf32_arm_final_link_relocate): Add support for R_ARM_THM_JUMP24, R_ARM_THM_JUMP19, R_ARM_THM_JUMP6. Remove case entries redundant with default. * reloc.c: Reorganize ARM relocations. Add Thumb assembler-internal relocations BFD_RELOC_ARM_T32_OFFSET_U8, BFD_RELOC_ARM_T32_OFFSET_IMM, BFD_RELOC_ARM_T32_IMMEDIATE. Add visible relocations BFD_RELOC_THUMB_PCREL_BRANCH7, BFD_RELOC_THUMB_BRANCH20, BFD_RELOC_THUMB_BRANCH25. Delete unused relocations BFD_RELOC_ARM_GOT12, BFD_RELOC_ARM_COPY. * bfd-in2.h, libbfd.h: Regenerate. opcodes: * arm-dis.c (thumb_opcodes): Add disassembly for V6T2 16-bit instructions. Adjust disassembly of some opcodes to match unified syntax. (thumb32_opcodes): New table. (print_insn_thumb): Rename print_insn_thumb16; don't handle two-halfword branches here. (print_insn_thumb32): New function. (print_insn): Choose among print_insn_arm, print_insn_thumb16, and print_insn_thumb32. Be consistent about order of halfwords when printing 32-bit instructions. gas: * hash.c (hash_lookup): Add len parameter. All callers changed. (hash_find_n): New interface. * hash.h: Prototype hash_find_n. * sb.c: Include as.h. (scrub_from_sb, sb_to_scrub, scrub_position): New statics. (sb_scrub_and_add_sb): New interface. * sb.h: Prototype sb_scrub_and_add_sb. * input-scrub.c (input_scrub_include_sb): Use sb_scrub_and_add_sb. * config/tc-arm.h (TC_FORCE_RELOCATION_LOCAL): Remove reference to BFD_RELOC_ARM_GOT12 which is never generated. * config/tc-arm.c: Rewrite, adding Thumb-2 support. gas/testsuite: * gas/arm/arm.exp: Convert all existing "gas_test" tests to "run_dump_test" tests. Run more tests unconditionally. Run new tests. * gas/arm/arch4t.s, gas/arm/arch6zk.s, gas/arm/arm3.s, gas/arm/arm6.s * gas/arm/arm7dm.s, gas/arm/bignum1.s, gas/arm/float.s * gas/arm/immed.s, gas/arm/iwmmxt.s, gas/arm/offset.s, gas/arm/thumb.s: Adjust to work as a dump test. * gas/arm/arch4t.d, gas/arm/arch6zk.d, gas/arm/arm3.d, gas/arm/arm6.d * gas/arm/arm7dm.d, gas/arm/bignum1.d, gas/arm/float.d * gas/arm/immed.d, gas/arm/iwmmxt.d, gas/arm/offset.d, gas/arm/thumb.d: New files. * gas/arm/armv1-bad.l, gas/arm/armv1-bad.s: Remove tests for diagnostics that don't happen in the first pass anymore. * gas/arm/iwmmxt-bad.l, gas/arm/r15-bad.l, gas/arm/req.l * gas/arm/vfp-bad.l: Update expected diagnostics. * gas/arm/pic.d: Update expected reloc name. * gas/arm/thumbv6.d: CPY no longer appears in disassembly. * gas/arm/r15-bad.s: Avoid two-argument mul. * gas/arm/req.s: Adjust comments. * gas/arm/maverick.d, gas/arm/maverick.s: Avoid inappropriate use of PC. * gas/arm/macro-1.d, gas/arm/macro1.s * gas/arm/t16-bad.l, gas/arm/t16-bad.s * gas/arm/tcompat.d, gas/arm/tcompat.s * gas/arm/tcompat2.d, gas/arm/tcompat2.s * gas/arm/thumb32.d, gas/arm/thumb32.s New test pair. ld/testsuite: * ld-arm/mixed-app.d: Adjust expected disassembly a little.
This commit is contained in:
		@@ -38,7 +38,7 @@
 | 
			
		||||
#define EF_ARM_MAVERICK_FLOAT 0x800
 | 
			
		||||
 | 
			
		||||
/* Frame unwind information */
 | 
			
		||||
#define PT_ARM_EXIDX (PT_LOPROC + 1) 
 | 
			
		||||
#define PT_ARM_EXIDX (PT_LOPROC + 1)
 | 
			
		||||
 | 
			
		||||
/* Other constants defined in the ARM ELF spec. version B-01.  */
 | 
			
		||||
#define EF_ARM_SYMSARESORTED 0x04	/* NB conflicts with EF_INTERWORK */
 | 
			
		||||
@@ -84,93 +84,159 @@
 | 
			
		||||
/* Relocation types.  */
 | 
			
		||||
 | 
			
		||||
START_RELOC_NUMBERS (elf_arm_reloc_type)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_NONE,             0)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_PC24,             1)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS32,            2)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_REL32,            3)
 | 
			
		||||
#ifdef OLD_ARM_ABI
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS8,             4)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS16,            5)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS12,            6)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_ABS5,         7)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_PC22,         8)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_SBREL32,          9)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_AMP_VCALL9,      10)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_PC11,        11)   /* Cygnus extension to abi: Thumb unconditional branch.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_PC9,         12)   /* Cygnus extension to abi: Thumb conditional branch.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GNU_VTINHERIT,   13)  
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GNU_VTENTRY,     14)  
 | 
			
		||||
#else /* not OLD_ARM_ABI */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_PC13,             4)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS16,            5)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS12,            6)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_ABS5,         7)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS8,             8)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_SBREL32,          9)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_PC22,        10)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_PC8,         11)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_AMP_VCALL9,      12)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_SWI24,           13)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_SWI8,        14)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_XPC25,           15)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_XPC22,       16)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_DTPMOD32,    17)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_DTPOFF32,    18)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_TPOFF32,     19)
 | 
			
		||||
#endif /* not OLD_ARM_ABI */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_COPY,            20)   /* Copy symbol at runtime.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GLOB_DAT,        21)   /* Create GOT entry.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_JUMP_SLOT,       22)   /* Create PLT entry.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RELATIVE,        23)   /* Adjust by program base.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOTOFF,          24)   /* 32 bit offset to GOT.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOTPC,           25)   /* 32 bit PC relative offset to GOT.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOT32,           26)   /* 32 bit GOT entry.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_PLT32,           27)   /* 32 bit PLT address.  */
 | 
			
		||||
#ifdef OLD_ARM_ABI
 | 
			
		||||
  FAKE_RELOC   (FIRST_INVALID_RELOC,   28)
 | 
			
		||||
  FAKE_RELOC   (LAST_INVALID_RELOC,   249)
 | 
			
		||||
#else /* not OLD_ARM_ABI */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_CALL,            28)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_JUMP24,          29)
 | 
			
		||||
  FAKE_RELOC   (FIRST_INVALID_RELOC1,  30)
 | 
			
		||||
  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_SBREL_11_0,  35)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SBREL_19_12, 36)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SBREL_27_20, 37)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TARGET1,         38)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ROSEGREL32,      39)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_V4BX,            40)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TARGET2,	       41)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_PREL31,	       42)
 | 
			
		||||
  FAKE_RELOC   (FIRST_INVALID_RELOC2,  43)
 | 
			
		||||
  FAKE_RELOC   (LAST_INVALID_RELOC2,   94)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOT_ABS,	       95)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOT_PREL,	       96)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOT_BREL12,      97)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOTOFF12,	       98)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOTRELAX,	       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.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_GD32,	      104)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_LDM32,      105)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_LDO32,      106)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_IE32,       107)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_LE32,	      108)
 | 
			
		||||
  FAKE_RELOC   (FIRST_INVALID_RELOC3, 109)
 | 
			
		||||
  FAKE_RELOC   (LAST_INVALID_RELOC3,  248)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RXPC25,         249)
 | 
			
		||||
#endif /* not OLD_ARM_ABI */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RSBREL32,       250)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_RPC22,      251)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RREL32,         252)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RABS32,         253)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RPC24,          254)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RBASE,          255)
 | 
			
		||||
/* AAELF official names and numbers.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_NONE,            	  0)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_PC24,            	  1)   /* deprecated */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS32,           	  2)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_REL32,           	  3)
 | 
			
		||||
#ifndef OLD_ARM_ABI
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDR_PC_G0,       	  4)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS16,           	  5)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS12,           	  6)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_ABS5,        	  7)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS8,            	  8)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_SBREL32,         	  9)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_CALL,        	 10)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_PC8,         	 11)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_BREL_ADJ,	       	 12)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_SWI24,           	 13)   /* obsolete */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_SWI8,        	 14)   /* obsolete */
 | 
			
		||||
#else
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS8,            	  4)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS16,           	  5)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS12,           	  6)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_ABS5,        	  7)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_CALL,        	  8)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_SBREL32,         	  9)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_BREL_ADJ,        	 10)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_JUMP11,      	 11)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_JUMP8,       	 12)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GNU_VTINHERIT,   	 13)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GNU_VTENTRY,     	 14)
 | 
			
		||||
#endif
 | 
			
		||||
  RELOC_NUMBER (R_ARM_XPC25,           	 15)   /* obsolete */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_XPC22,       	 16)   /* obsolete */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_DTPMOD32,    	 17)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_DTPOFF32,    	 18)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_TPOFF32,     	 19)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_COPY,            	 20)   /* Copy symbol at runtime.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GLOB_DAT,        	 21)   /* Create GOT entry.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_JUMP_SLOT,       	 22)   /* Create PLT entry.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RELATIVE,        	 23)   /* Adjust by program base.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOTOFF32,        	 24)   /* 32 bit offset to GOT.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_BASE_PREL,       	 25)   /* 32 bit PC relative offset to GOT.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOT_BREL,        	 26)   /* 32 bit GOT entry.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_PLT32,           	 27)   /* deprecated - 32 bit PLT address.  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_CALL,            	 28)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_JUMP24,          	 29)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_JUMP24,      	 30)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_BASE_ABS,        	 31)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_PCREL7_0,    	 32)   /* obsolete */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_PCREL15_8,   	 33)   /* obsolete */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_PCREL23_15,  	 34)   /* obsolete */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDR_SBREL_11_0,  	 35)   /* deprecated, should have _NC suffix */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SBREL_19_12, 	 36)   /* deprecated, should have _NC suffix */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SBREL_27_20, 	 37)   /* deprecated, should have _CK suffix */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TARGET1,         	 38)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_SBREL31,         	 39)   /* deprecated */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_V4BX,            	 40)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TARGET2,	       	 41)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_PREL31,	       	 42)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_MOVW_ABS_NC,     	 43)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_MOVT_ABS,        	 44)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_MOVW_PREL_NC,    	 45)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_MOVT_PREL,       	 46)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_MOVW_ABS_NC, 	 47)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_MOVT_ABS,    	 48)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_MOVW_PREL_NC,	 49)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_MOVT_PREL,   	 50)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_JUMP19,      	 51)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_JUMP6,       	 52)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_ALU_PREL_11_0, 53)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_PC12,        	 54)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ABS32_NOI,       	 55)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_REL32_NOI,       	 56)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_PC_G0_NC,      57)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_PC_G0,         58)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_PC_G1_NC,      59)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_PC_G1,         60)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_PC_G2,         61)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDR_PC_G1,         62)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDR_PC_G2,         63)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDRS_PC_G0,        64)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDRS_PC_G1,        65)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDRS_PC_G2,        66)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDC_PC_G0,         67)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDC_PC_G1,         68)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDC_PC_G2,         69)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SB_G0_NC,      70)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SB_G0,         71)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SB_G1_NC,      72)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SB_G1,         73)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ALU_SB_G2,         74)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDR_SB_G0,         75)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDR_SB_G1,         76)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDR_SB_G2,         77)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDRS_SB_G0,        78)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDRS_SB_G1,        79)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDRS_SB_G2,        80)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDC_G0,            81)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDC_G1,            82)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_LDC_G2,            83)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_MOVW_BREL_NC,    	 84)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_MOVT_BREL,       	 85)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_MOVW_BREL,       	 86)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_MOVW_BREL_NC,	 87)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_MOVT_BREL,   	 88)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_MOVW_BREL,   	 89)
 | 
			
		||||
  /* 90-93 unallocated */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_PLT32_ABS,       	 94)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOT_ABS,	       	 95)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOT_PREL,	       	 96)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOT_BREL12,      	 97)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOTOFF12,	       	 98)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GOTRELAX,	       	 99)
 | 
			
		||||
#ifndef OLD_ARM_ABI
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GNU_VTENTRY,    	100)   /* deprecated - old C++ abi */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_GNU_VTINHERIT,  	101)   /* deprecated - old C++ abi */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_JUMP11,     	102)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_JUMP8,      	103)
 | 
			
		||||
#endif
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_GD32,	      	104)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_LDM32,      	105)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_LDO32,      	106)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_IE32,       	107)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_LE32,	      	108)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_LDO12,      	109)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_LE12,	      	110)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_TLS_IE12GP,     	111)
 | 
			
		||||
  /* 112 - 127 private range */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_ME_TOO,	        128)   /* obsolete */
 | 
			
		||||
 | 
			
		||||
  /* Extensions?  R=read-only?  */
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RXPC25,         	249)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RSBREL32,       	250)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_THM_RPC22,      	251)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RREL32,         	252)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RABS32,         	253)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RPC24,          	254)
 | 
			
		||||
  RELOC_NUMBER (R_ARM_RBASE,          	255)
 | 
			
		||||
 | 
			
		||||
  /* Unofficial names for some of the relocs.  */
 | 
			
		||||
  FAKE_RELOC (R_ARM_GOTOFF,             R_ARM_GOTOFF32)   /* 32 bit offset to GOT.  */
 | 
			
		||||
  FAKE_RELOC (R_ARM_THM_PC22,           R_ARM_THM_CALL)
 | 
			
		||||
  FAKE_RELOC (R_ARM_THM_PC11,           R_ARM_THM_JUMP11)
 | 
			
		||||
  FAKE_RELOC (R_ARM_THM_PC9,            R_ARM_THM_JUMP8)
 | 
			
		||||
 | 
			
		||||
  /* Relocs with both a different name, and (apparently) different meaning in
 | 
			
		||||
     GNU usage.  */
 | 
			
		||||
  FAKE_RELOC (R_ARM_GOTPC,              R_ARM_BASE_PREL)  /* 32 bit PC relative offset to GOT.  */
 | 
			
		||||
  FAKE_RELOC (R_ARM_GOT32,              R_ARM_GOT_BREL)   /* 32 bit GOT entry.  */
 | 
			
		||||
  FAKE_RELOC (R_ARM_ROSEGREL32,         R_ARM_SBREL31)    /* ??? */
 | 
			
		||||
  FAKE_RELOC (R_ARM_AMP_VCALL9,         R_ARM_BREL_ADJ)   /* Thumb-something.  Not used.  */
 | 
			
		||||
#ifndef OLD_ARM_ABI
 | 
			
		||||
  FAKE_RELOC (R_ARM_PC13,               R_ARM_LDR_PC_G0)  /* Unclear whether meaning is different.  */
 | 
			
		||||
#endif
 | 
			
		||||
END_RELOC_NUMBERS (R_ARM_max)
 | 
			
		||||
 | 
			
		||||
/* The name of the note section used to identify arm variants.  */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user