From dd7f6076476db449f510a90a1e4d2285dd971204 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 5 Mar 2017 09:42:27 +0100 Subject: binutils: add 2.28, default to 2.28 --- target/config/Config.in.binutils | 31 +- toolchain/binutils/Makefile.inc | 7 + toolchain/binutils/patches/2.24/bfin.patch | 13 - toolchain/binutils/patches/2.24/binutils.nds32 | 409190 ------------------ .../binutils/patches/2.24/gas-first-frag.xtensa | 51 - toolchain/binutils/patches/2.24/gas-ld-diff.xtensa | 133 - .../patches/2.24/ld-segfault-linux-modules.xtensa | 47 - toolchain/binutils/patches/2.24/trampolines.xtensa | 846 - toolchain/binutils/patches/2.25.1/bfin.patch | 13 - toolchain/binutils/patches/2.25.1/m68k.patch | 11 - toolchain/binutils/patches/2.25.1/microblaze.patch | 16 - toolchain/binutils/patches/2.25.1/nds32.patch | 14 - toolchain/binutils/patches/2.25.1/sheb.patch | 54 - toolchain/elf2flt/Makefile | 9 +- 14 files changed, 18 insertions(+), 410417 deletions(-) delete mode 100644 toolchain/binutils/patches/2.24/bfin.patch delete mode 100644 toolchain/binutils/patches/2.24/binutils.nds32 delete mode 100644 toolchain/binutils/patches/2.24/gas-first-frag.xtensa delete mode 100644 toolchain/binutils/patches/2.24/gas-ld-diff.xtensa delete mode 100644 toolchain/binutils/patches/2.24/ld-segfault-linux-modules.xtensa delete mode 100644 toolchain/binutils/patches/2.24/trampolines.xtensa delete mode 100644 toolchain/binutils/patches/2.25.1/bfin.patch delete mode 100644 toolchain/binutils/patches/2.25.1/m68k.patch delete mode 100644 toolchain/binutils/patches/2.25.1/microblaze.patch delete mode 100644 toolchain/binutils/patches/2.25.1/nds32.patch delete mode 100644 toolchain/binutils/patches/2.25.1/sheb.patch diff --git a/target/config/Config.in.binutils b/target/config/Config.in.binutils index 9a4eef086..e49a88e3d 100644 --- a/target/config/Config.in.binutils +++ b/target/config/Config.in.binutils @@ -6,52 +6,37 @@ prompt "Binutils version" default ADK_TOOLCHAIN_BINUTILS_ARC if ADK_TARGET_ARCH_ARC default ADK_TOOLCHAIN_BINUTILS_NDS32 if ADK_TARGET_ARCH_NDS32 default ADK_TOOLCHAIN_BINUTILS_2_20_1 if ADK_TARGET_ARCH_AVR32 -default ADK_TOOLCHAIN_BINUTILS_2_25_1 if ADK_TARGET_ARCH_LM32 -default ADK_TOOLCHAIN_BINUTILS_2_25_1 if ADK_TARGET_ARCH_X86 -default ADK_TOOLCHAIN_BINUTILS_2_27 if ADK_TARGET_ARCH_C6X -default ADK_TOOLCHAIN_BINUTILS_2_27 if ADK_TARGET_ARCH_FRV -default ADK_TOOLCHAIN_BINUTILS_2_27 if ADK_TARGET_ARCH_H8300 -default ADK_TOOLCHAIN_BINUTILS_2_27 if ADK_TARGET_ARCH_NIOS2 -default ADK_TOOLCHAIN_BINUTILS_2_27 if ADK_TARGET_ARCH_XTENSA && ADK_TARGET_LITTLE_ENDIAN -default ADK_TOOLCHAIN_BINUTILS_2_27 if ADK_TARGET_SYSTEM_NUMATO_MIMASV2 -default ADK_TOOLCHAIN_BINUTILS_2_26_1 +default ADK_TOOLCHAIN_BINUTILS_2_28 config ADK_TOOLCHAIN_BINUTILS_GIT bool "git" depends on !ADK_TARGET_ARCH_ARC depends on !ADK_TARGET_ARCH_AVR32 - depends on !ADK_TARGET_ARCH_CRIS depends on !ADK_TARGET_ARCH_NDS32 -config ADK_TOOLCHAIN_BINUTILS_2_27 - bool "2.27" +config ADK_TOOLCHAIN_BINUTILS_2_28 + bool "2.28" depends on !ADK_TARGET_ARCH_ARC depends on !ADK_TARGET_ARCH_AVR32 depends on !ADK_TARGET_ARCH_NDS32 depends on !ADK_TARGET_ARCH_RISCV - depends on !ADK_TARGET_CPU_CRIS_CRISV10 -config ADK_TOOLCHAIN_BINUTILS_2_26_1 - bool "2.26.1" +config ADK_TOOLCHAIN_BINUTILS_2_27 + bool "2.27" depends on !ADK_TARGET_ARCH_ARC depends on !ADK_TARGET_ARCH_AVR32 - depends on !ADK_TARGET_ARCH_FRV - depends on !ADK_TARGET_ARCH_H8300 depends on !ADK_TARGET_ARCH_NDS32 depends on !ADK_TARGET_ARCH_RISCV - depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2 + depends on !ADK_TARGET_CPU_CRIS_CRISV10 -config ADK_TOOLCHAIN_BINUTILS_2_25_1 - bool "2.25.1" +config ADK_TOOLCHAIN_BINUTILS_2_26_1 + bool "2.26.1" depends on !ADK_TARGET_ARCH_ARC depends on !ADK_TARGET_ARCH_AVR32 - depends on !ADK_TARGET_ARCH_BFIN depends on !ADK_TARGET_ARCH_FRV depends on !ADK_TARGET_ARCH_H8300 - depends on !ADK_TARGET_ARCH_MOXIE depends on !ADK_TARGET_ARCH_NDS32 depends on !ADK_TARGET_ARCH_RISCV - depends on !ADK_TARGET_CPU_CRIS_CRISV10 depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2 config ADK_TOOLCHAIN_BINUTILS_NDS32 diff --git a/toolchain/binutils/Makefile.inc b/toolchain/binutils/Makefile.inc index e6a023ff3..22ffb2c46 100644 --- a/toolchain/binutils/Makefile.inc +++ b/toolchain/binutils/Makefile.inc @@ -2,6 +2,13 @@ # material, please see the LICENCE file in the top-level directory. PKG_NAME:= binutils +ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_28),y) +PKG_VERSION:= 2.28 +PKG_RELEASE:= 1 +PKG_HASH:= cd717966fc761d840d451dbd58d44e1e5b92949d2073d75b73fccb476d772fcf +PKG_SITES:= ${MASTER_SITE_GNU:=binutils/} +DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz +endif ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_27),y) PKG_VERSION:= 2.27 PKG_RELEASE:= 1 diff --git a/toolchain/binutils/patches/2.24/bfin.patch b/toolchain/binutils/patches/2.24/bfin.patch deleted file mode 100644 index 1f287518a..000000000 --- a/toolchain/binutils/patches/2.24/bfin.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c -index 7cc8b6d..12f0add 100644 ---- a/bfd/elf32-bfin.c -+++ b/bfd/elf32-bfin.c -@@ -4457,7 +4457,7 @@ elf32_bfinfdpic_finish_dynamic_sections (bfd *output_bfd, - if (bfinfdpic_got_section (info)) - { - BFD_ASSERT (bfinfdpic_gotrel_section (info)->size -- == (bfinfdpic_gotrel_section (info)->reloc_count -+ >= (bfinfdpic_gotrel_section (info)->reloc_count - * sizeof (Elf32_External_Rel))); - - if (bfinfdpic_gotfixup_section (info)) diff --git a/toolchain/binutils/patches/2.24/binutils.nds32 b/toolchain/binutils/patches/2.24/binutils.nds32 deleted file mode 100644 index 1573f2c4d..000000000 --- a/toolchain/binutils/patches/2.24/binutils.nds32 +++ /dev/null @@ -1,409190 +0,0 @@ -diff -Nur binutils-2.24.orig/bfd/archures.c binutils-2.24/bfd/archures.c ---- binutils-2.24.orig/bfd/archures.c 2013-11-08 11:02:26.000000000 +0100 -+++ binutils-2.24/bfd/archures.c 2016-06-30 21:26:12.537888600 +0200 -@@ -316,6 +316,12 @@ - .#define bfd_mach_arm_ep9312 11 - .#define bfd_mach_arm_iWMMXt 12 - .#define bfd_mach_arm_iWMMXt2 13 -+. bfd_arch_nds32, {* Andes NDS32 *} -+.#define bfd_mach_n1 1 -+.#define bfd_mach_n1h 2 -+.#define bfd_mach_n1h_v2 3 -+.#define bfd_mach_n1h_v3 4 -+.#define bfd_mach_n1h_v3m 5 - . bfd_arch_ns32k, {* National Semiconductors ns32000 *} - . bfd_arch_w65, {* WDC 65816 *} - . bfd_arch_tic30, {* Texas Instruments TMS320C30 *} -@@ -574,6 +580,7 @@ - extern const bfd_arch_info_type bfd_moxie_arch; - extern const bfd_arch_info_type bfd_msp430_arch; - extern const bfd_arch_info_type bfd_mt_arch; -+extern const bfd_arch_info_type bfd_nds32_arch; - extern const bfd_arch_info_type bfd_nios2_arch; - extern const bfd_arch_info_type bfd_ns32k_arch; - extern const bfd_arch_info_type bfd_openrisc_arch; -@@ -663,6 +670,7 @@ - &bfd_moxie_arch, - &bfd_msp430_arch, - &bfd_mt_arch, -+ &bfd_nds32_arch, - &bfd_nios2_arch, - &bfd_ns32k_arch, - &bfd_openrisc_arch, -diff -Nur binutils-2.24.orig/bfd/bfd.c binutils-2.24/bfd/bfd.c ---- binutils-2.24.orig/bfd/bfd.c 2013-11-04 16:33:37.000000000 +0100 -+++ binutils-2.24/bfd/bfd.c 2016-06-30 21:26:12.537888600 +0200 -@@ -311,6 +311,14 @@ - . unsigned int selective_search : 1; - .}; - . -+.{* See note beside bfd_set_section_userdata. *} -+.static inline bfd_boolean -+.bfd_set_cacheable (bfd * abfd, bfd_boolean val) -+.{ -+. abfd->cacheable = val; -+. return TRUE; -+.} -+. - */ - - #include "sysdep.h" -diff -Nur binutils-2.24.orig/bfd/bfd-in2.h binutils-2.24/bfd/bfd-in2.h ---- binutils-2.24.orig/bfd/bfd-in2.h 2013-11-18 09:40:15.000000000 +0100 -+++ binutils-2.24/bfd/bfd-in2.h 2016-06-30 21:26:12.541888755 +0200 -@@ -299,9 +299,6 @@ - - #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) - --#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) --#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) --#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) - /* Find the address one past the end of SEC. */ - #define bfd_get_section_limit(bfd, sec) \ - (((bfd)->direction != write_direction && (sec)->rawsize != 0 \ -@@ -524,8 +521,6 @@ - - #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) - --#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -- - extern bfd_boolean bfd_cache_close - (bfd *abfd); - /* NB: This declaration should match the autogenerated one in libbfd.h. */ -@@ -1594,6 +1589,32 @@ - int size; - }; - -+/* Note: the following are provided as inline functions rather than macros -+ because not all callers use the return value. A macro implementation -+ would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some -+ compilers will complain about comma expressions that have no effect. */ -+static inline bfd_boolean -+bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val) -+{ -+ ptr->userdata = val; -+ return TRUE; -+} -+ -+static inline bfd_boolean -+bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val) -+{ -+ ptr->vma = ptr->lma = val; -+ ptr->user_set_vma = TRUE; -+ return TRUE; -+} -+ -+static inline bfd_boolean -+bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val) -+{ -+ ptr->alignment_power = val; -+ return TRUE; -+} -+ - /* These sections are global, and are managed by BFD. The application - and target back end are not permitted to change the values in - these sections. */ -@@ -2071,6 +2092,12 @@ - #define bfd_mach_arm_ep9312 11 - #define bfd_mach_arm_iWMMXt 12 - #define bfd_mach_arm_iWMMXt2 13 -+ bfd_arch_nds32, /* Andes NDS32 */ -+#define bfd_mach_n1 1 -+#define bfd_mach_n1h 2 -+#define bfd_mach_n1h_v2 3 -+#define bfd_mach_n1h_v3 4 -+#define bfd_mach_n1h_v3m 5 - bfd_arch_ns32k, /* National Semiconductors ns32000 */ - bfd_arch_w65, /* WDC 65816 */ - bfd_arch_tic30, /* Texas Instruments TMS320C30 */ -@@ -3794,6 +3821,229 @@ - BFD_RELOC_M32R_GOTPC_HI_SLO, - BFD_RELOC_M32R_GOTPC_LO, - -+/* NDS32 relocs. -+This is a 20 bit absolute address. */ -+ BFD_RELOC_NDS32_20, -+ -+/* This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0. */ -+ BFD_RELOC_NDS32_9_PCREL, -+ -+/* This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0. */ -+ BFD_RELOC_NDS32_WORD_9_PCREL, -+ -+/* This is an 15-bit reloc with the right 1 bit assumed to be 0. */ -+ BFD_RELOC_NDS32_15_PCREL, -+ -+/* This is an 17-bit reloc with the right 1 bit assumed to be 0. */ -+ BFD_RELOC_NDS32_17_PCREL, -+ -+/* This is a 25-bit reloc with the right 1 bit assumed to be 0. */ -+ BFD_RELOC_NDS32_25_PCREL, -+ -+/* This is a 20-bit reloc containing the high 20 bits of an address -+used with the lower 12 bits */ -+ BFD_RELOC_NDS32_HI20, -+ -+/* This is a 12-bit reloc containing the lower 12 bits of an address -+then shift right by 3. This is used with ldi,sdi... */ -+ BFD_RELOC_NDS32_LO12S3, -+ -+/* This is a 12-bit reloc containing the lower 12 bits of an address -+then shift left by 2. This is used with lwi,swi... */ -+ BFD_RELOC_NDS32_LO12S2, -+ -+/* This is a 12-bit reloc containing the lower 12 bits of an address -+then shift left by 1. This is used with lhi,shi... */ -+ BFD_RELOC_NDS32_LO12S1, -+ -+/* This is a 12-bit reloc containing the lower 12 bits of an address -+then shift left by 0. This is used with lbisbi... */ -+ BFD_RELOC_NDS32_LO12S0, -+ -+/* This is a 12-bit reloc containing the lower 12 bits of an address -+then shift left by 0. This is only used with branch relaxations */ -+ BFD_RELOC_NDS32_LO12S0_ORI, -+ -+/* This is a 15-bit reloc containing the small data area 18-bit signed offset -+and shift left by 3 for use in ldi, sdi... */ -+ BFD_RELOC_NDS32_SDA15S3, -+ -+/* This is a 15-bit reloc containing the small data area 17-bit signed offset -+and shift left by 2 for use in lwi, swi... */ -+ BFD_RELOC_NDS32_SDA15S2, -+ -+/* This is a 15-bit reloc containing the small data area 16-bit signed offset -+and shift left by 1 for use in lhi, shi... */ -+ BFD_RELOC_NDS32_SDA15S1, -+ -+/* This is a 15-bit reloc containing the small data area 15-bit signed offset -+and shift left by 0 for use in lbi, sbi... */ -+ BFD_RELOC_NDS32_SDA15S0, -+ -+/* This is a 16-bit reloc containing the small data area 16-bit signed offset -+and shift left by 3 */ -+ BFD_RELOC_NDS32_SDA16S3, -+ -+/* This is a 17-bit reloc containing the small data area 17-bit signed offset -+and shift left by 2 for use in lwi.gp, swi.gp... */ -+ BFD_RELOC_NDS32_SDA17S2, -+ -+/* This is a 18-bit reloc containing the small data area 18-bit signed offset -+and shift left by 1 for use in lhi.gp, shi.gp... */ -+ BFD_RELOC_NDS32_SDA18S1, -+ -+/* This is a 19-bit reloc containing the small data area 19-bit signed offset -+and shift left by 0 for use in lbi.gp, sbi.gp... */ -+ BFD_RELOC_NDS32_SDA19S0, -+ -+/* This is a 24-bit reloc for security check sum. */ -+ BFD_RELOC_NDS32_SECURITY_16, -+ -+/* for PIC */ -+ BFD_RELOC_NDS32_GOT20, -+ BFD_RELOC_NDS32_9_PLTREL, -+ BFD_RELOC_NDS32_25_PLTREL, -+ BFD_RELOC_NDS32_COPY, -+ BFD_RELOC_NDS32_GLOB_DAT, -+ BFD_RELOC_NDS32_JMP_SLOT, -+ BFD_RELOC_NDS32_RELATIVE, -+ BFD_RELOC_NDS32_GOTOFF, -+ BFD_RELOC_NDS32_GOTOFF_HI20, -+ BFD_RELOC_NDS32_GOTOFF_LO12, -+ BFD_RELOC_NDS32_GOTPC20, -+ BFD_RELOC_NDS32_GOT_HI20, -+ BFD_RELOC_NDS32_GOT_LO12, -+ BFD_RELOC_NDS32_GOTPC_HI20, -+ BFD_RELOC_NDS32_GOTPC_LO12, -+ -+/* for relax */ -+ BFD_RELOC_NDS32_INSN16, -+ BFD_RELOC_NDS32_LABEL, -+ BFD_RELOC_NDS32_LONGCALL1, -+ BFD_RELOC_NDS32_LONGCALL2, -+ BFD_RELOC_NDS32_LONGCALL3, -+ BFD_RELOC_NDS32_LONGJUMP1, -+ BFD_RELOC_NDS32_LONGJUMP2, -+ BFD_RELOC_NDS32_LONGJUMP3, -+ BFD_RELOC_NDS32_LOADSTORE, -+ BFD_RELOC_NDS32_9_FIXED, -+ BFD_RELOC_NDS32_15_FIXED, -+ BFD_RELOC_NDS32_17_FIXED, -+ BFD_RELOC_NDS32_25_FIXED, -+ BFD_RELOC_NDS32_LONGCALL4, -+ BFD_RELOC_NDS32_LONGCALL5, -+ BFD_RELOC_NDS32_LONGCALL6, -+ BFD_RELOC_NDS32_LONGJUMP4, -+ BFD_RELOC_NDS32_LONGJUMP5, -+ BFD_RELOC_NDS32_LONGJUMP6, -+ BFD_RELOC_NDS32_LONGJUMP7, -+ -+/* for PIC */ -+ BFD_RELOC_NDS32_PLTREL_HI20, -+ BFD_RELOC_NDS32_PLTREL_LO12, -+ BFD_RELOC_NDS32_PLT_GOTREL_HI20, -+ BFD_RELOC_NDS32_PLT_GOTREL_LO12, -+ -+/* for floating point */ -+ BFD_RELOC_NDS32_SDA12S2_DP, -+ BFD_RELOC_NDS32_SDA12S2_SP, -+ BFD_RELOC_NDS32_LO12S2_DP, -+ BFD_RELOC_NDS32_LO12S2_SP, -+ -+/* for dwarf2 debug_line. */ -+ BFD_RELOC_NDS32_DWARF2_OP1, -+ BFD_RELOC_NDS32_DWARF2_OP2, -+ BFD_RELOC_NDS32_DWARF2_LEB, -+ -+/* for eliminate 16-bit instructions */ -+ BFD_RELOC_NDS32_UPDATE_TA, -+ -+/* for PIC object relaxation */ -+ BFD_RELOC_NDS32_PLT_GOTREL_LO20, -+ BFD_RELOC_NDS32_PLT_GOTREL_LO15, -+ BFD_RELOC_NDS32_PLT_GOTREL_LO19, -+ BFD_RELOC_NDS32_GOT_LO15, -+ BFD_RELOC_NDS32_GOT_LO19, -+ BFD_RELOC_NDS32_GOTOFF_LO15, -+ BFD_RELOC_NDS32_GOTOFF_LO19, -+ BFD_RELOC_NDS32_GOT15S2, -+ BFD_RELOC_NDS32_GOT17S2, -+ -+/* NDS32 relocs. -+This is a 5 bit absolute address. */ -+ BFD_RELOC_NDS32_5, -+ -+/* This is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0. */ -+ BFD_RELOC_NDS32_10_UPCREL, -+ -+/* If fp were omitted, fp can used as another gp. */ -+ BFD_RELOC_NDS32_SDA_FP7U2_RELA, -+ -+/* relaxation relative relocation types */ -+ BFD_RELOC_NDS32_RELAX_ENTRY, -+ BFD_RELOC_NDS32_GOT_SUFF, -+ BFD_RELOC_NDS32_GOTOFF_SUFF, -+ BFD_RELOC_NDS32_PLT_GOT_SUFF, -+ BFD_RELOC_NDS32_MULCALL_SUFF, -+ BFD_RELOC_NDS32_PTR, -+ BFD_RELOC_NDS32_PTR_COUNT, -+ BFD_RELOC_NDS32_PTR_RESOLVED, -+ BFD_RELOC_NDS32_PLTBLOCK, -+ BFD_RELOC_NDS32_RELAX_REGION_BEGIN, -+ BFD_RELOC_NDS32_RELAX_REGION_END, -+ BFD_RELOC_NDS32_MINUEND, -+ BFD_RELOC_NDS32_SUBTRAHEND, -+ BFD_RELOC_NDS32_DIFF8, -+ BFD_RELOC_NDS32_DIFF16, -+ BFD_RELOC_NDS32_DIFF32, -+ BFD_RELOC_NDS32_DIFF_ULEB128, -+ BFD_RELOC_NDS32_EMPTY, -+ -+/* This is a 25 bit absolute address. */ -+ BFD_RELOC_NDS32_25_ABS, -+ -+/* For ex9 and ifc using. */ -+ BFD_RELOC_NDS32_DATA, -+ BFD_RELOC_NDS32_TRAN, -+ BFD_RELOC_NDS32_17IFC_PCREL, -+ BFD_RELOC_NDS32_10IFCU_PCREL, -+ -+/* For TLS. */ -+ BFD_RELOC_NDS32_TPOFF, -+ BFD_RELOC_NDS32_GOTTPOFF, -+ BFD_RELOC_NDS32_TLS_LE_HI20, -+ BFD_RELOC_NDS32_TLS_LE_LO12, -+ BFD_RELOC_NDS32_TLS_LE_20, -+ BFD_RELOC_NDS32_TLS_LE_15S0, -+ BFD_RELOC_NDS32_TLS_LE_15S1, -+ BFD_RELOC_NDS32_TLS_LE_15S2, -+ BFD_RELOC_NDS32_TLS_LE_ADD, -+ BFD_RELOC_NDS32_TLS_LE_LS, -+ BFD_RELOC_NDS32_TLS_IE_HI20, -+ BFD_RELOC_NDS32_TLS_IE_LO12, -+ BFD_RELOC_NDS32_TLS_IE_LO12S2, -+ BFD_RELOC_NDS32_TLS_IEGP_HI20, -+ BFD_RELOC_NDS32_TLS_IEGP_LO12, -+ BFD_RELOC_NDS32_TLS_IEGP_LO12S2, -+ BFD_RELOC_NDS32_TLS_IEGP_LW, -+ BFD_RELOC_NDS32_TLS_DESC, -+ BFD_RELOC_NDS32_TLS_DESC_HI20, -+ BFD_RELOC_NDS32_TLS_DESC_LO12, -+ BFD_RELOC_NDS32_TLS_DESC_20, -+ BFD_RELOC_NDS32_TLS_DESC_SDA17S2, -+ BFD_RELOC_NDS32_TLS_DESC_ADD, -+ BFD_RELOC_NDS32_TLS_DESC_FUNC, -+ BFD_RELOC_NDS32_TLS_DESC_CALL, -+ BFD_RELOC_NDS32_TLS_DESC_MEM, -+ BFD_RELOC_NDS32_REMOVE, -+ BFD_RELOC_NDS32_GROUP, -+ -+/* Jump-patch table relative relocations. */ -+ BFD_RELOC_NDS32_ICT, -+ BFD_RELOC_NDS32_ICT_HI20, -+ BFD_RELOC_NDS32_ICT_LO12, -+ BFD_RELOC_NDS32_ICT_25PC, -+ - /* This is a 9-bit reloc */ - BFD_RELOC_V850_9_PCREL, - -@@ -6235,6 +6485,14 @@ - unsigned int selective_search : 1; - }; - -+/* See note beside bfd_set_section_userdata. */ -+static inline bfd_boolean -+bfd_set_cacheable (bfd * abfd, bfd_boolean val) -+{ -+ abfd->cacheable = val; -+ return TRUE; -+} -+ - typedef enum bfd_error - { - bfd_error_no_error = 0, -diff -Nur binutils-2.24.orig/bfd/bfd-in.h binutils-2.24/bfd/bfd-in.h ---- binutils-2.24.orig/bfd/bfd-in.h 2013-11-04 16:33:37.000000000 +0100 -+++ binutils-2.24/bfd/bfd-in.h 2016-06-30 21:26:12.541888755 +0200 -@@ -292,9 +292,6 @@ - - #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) - --#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) --#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) --#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) - /* Find the address one past the end of SEC. */ - #define bfd_get_section_limit(bfd, sec) \ - (((bfd)->direction != write_direction && (sec)->rawsize != 0 \ -@@ -517,8 +514,6 @@ - - #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) - --#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -- - extern bfd_boolean bfd_cache_close - (bfd *abfd); - /* NB: This declaration should match the autogenerated one in libbfd.h. */ -diff -Nur binutils-2.24.orig/bfd/config.bfd binutils-2.24/bfd/config.bfd ---- binutils-2.24.orig/bfd/config.bfd 2013-11-04 16:33:37.000000000 +0100 -+++ binutils-2.24/bfd/config.bfd 2016-06-30 21:26:12.541888755 +0200 -@@ -6,12 +6,12 @@ - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. --# -+# - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. --# -+# - # You should have received a copy of the GNU General Public License - # along with this program; see the file COPYING3. If not see - # . -@@ -109,6 +109,7 @@ - m88*) targ_archs=bfd_m88k_arch ;; - microblaze*) targ_archs=bfd_microblaze_arch ;; - mips*) targ_archs=bfd_mips_arch ;; -+nds32*) targ_archs=bfd_nds32_arch ;; - nios2*) targ_archs=bfd_nios2_arch ;; - or32*) targ_archs=bfd_or32_arch ;; - pdp11*) targ_archs=bfd_pdp11_arch ;; -@@ -1120,6 +1121,28 @@ - targ_selvecs=bfd_elf32_msp430_ti_vec - ;; - -+ nds32*le-*-linux*) -+ targ_defvec=bfd_elf32_nds32lelin_vec -+ targ_selvecs=bfd_elf32_nds32belin_vec -+ targ_cflags=-DNDS32_LINUX_TOOLCHAIN -+ ;; -+ -+ nds32*be-*-linux*) -+ targ_defvec=bfd_elf32_nds32belin_vec -+ targ_selvecs=bfd_elf32_nds32lelin_vec -+ targ_cflags=-DNDS32_LINUX_TOOLCHAIN -+ ;; -+ -+ nds32*le-*-*) -+ targ_defvec=bfd_elf32_nds32le_vec -+ targ_selvecs=bfd_elf32_nds32be_vec -+ ;; -+ -+ nds32*be-*-*) -+ targ_defvec=bfd_elf32_nds32be_vec -+ targ_selvecs=bfd_elf32_nds32le_vec -+ ;; -+ - ns32k-pc532-mach* | ns32k-pc532-ux*) - targ_defvec=pc532machaout_vec - targ_underscore=yes -@@ -1640,12 +1663,12 @@ - w65-*-*) - targ_defvec=w65_vec - ;; -- -+ - xgate-*-*) - targ_defvec=bfd_elf32_xgate_vec - targ_selvecs="bfd_elf32_xgate_vec" - ;; -- -+ - xstormy16-*-elf) - targ_defvec=bfd_elf32_xstormy16_vec - ;; -diff -Nur binutils-2.24.orig/bfd/configure binutils-2.24/bfd/configure ---- binutils-2.24.orig/bfd/configure 2013-12-02 10:30:30.000000000 +0100 -+++ binutils-2.24/bfd/configure 2016-06-30 21:26:12.545888911 +0200 -@@ -15307,6 +15307,10 @@ - tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; - bfd_elf32_ntradlittlemips_vec | bfd_elf32_ntradlittlemips_freebsd_vec) - tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; -+ bfd_elf32_nds32le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; -+ bfd_elf32_nds32be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; -+ bfd_elf32_nds32lelin_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; -+ bfd_elf32_nds32belin_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; - bfd_elf32_openrisc_vec) tb="$tb elf32-openrisc.lo elf32.lo $elf" ;; - bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;; - bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";; -diff -Nur binutils-2.24.orig/bfd/configure.in binutils-2.24/bfd/configure.in ---- binutils-2.24.orig/bfd/configure.in 2013-12-02 10:30:28.000000000 +0100 -+++ binutils-2.24/bfd/configure.in 2016-06-30 21:26:12.545888911 +0200 -@@ -796,6 +796,10 @@ - tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; - bfd_elf32_ntradlittlemips_vec | bfd_elf32_ntradlittlemips_freebsd_vec) - tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; -+ bfd_elf32_nds32be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; -+ bfd_elf32_nds32le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; -+ bfd_elf32_nds32belin_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; -+ bfd_elf32_nds32lelin_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;; - bfd_elf32_openrisc_vec) tb="$tb elf32-openrisc.lo elf32.lo $elf" ;; - bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;; - bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";; -diff -Nur binutils-2.24.orig/bfd/cpu-nds32.c binutils-2.24/bfd/cpu-nds32.c ---- binutils-2.24.orig/bfd/cpu-nds32.c 1970-01-01 01:00:00.000000000 +0100 -+++ binutils-2.24/bfd/cpu-nds32.c 2016-06-30 21:26:12.545888911 +0200 -@@ -0,0 +1,44 @@ -+/* BFD support for the NDS32 processor -+ Copyright (C) 2012-2013 Free Software Foundation, Inc. -+ Contributed by Andes Technology Corporation. -+ -+ This file is part of BFD, the Binary File Descriptor library. -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, write to the Free Software -+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -+ 02110-1301, USA. */ -+ -+#include "sysdep.h" -+#include "bfd.h" -+#include "libbfd.h" -+#include "elf-bfd.h" -+ -+#define N(number, print, default, next) \ -+ {32, 32, 8, bfd_arch_nds32, number, "nds32", print, 4, default, \ -+ bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next } -+ -+#define NEXT &arch_info_struct[0] -+#define NDS32V2_NEXT &arch_info_struct[1] -+#define NDS32V3_NEXT &arch_info_struct[2] -+#define NDS32V3M_NEXT &arch_info_struct[3] -+ -+static const bfd_arch_info_type arch_info_struct[] = { -+ N (bfd_mach_n1h, "n1h", FALSE, NDS32V2_NEXT), -+ N (bfd_mach_n1h_v2, "n1h_v2", FALSE, NDS32V3_NEXT), -+ N (bfd_mach_n1h_v3, "n1h_v3", FALSE, NDS32V3M_NEXT), -+ N (bfd_mach_n1h_v3m, "n1h_v3m", FALSE, NULL), -+}; -+ -+const bfd_arch_info_type bfd_nds32_arch = -+ N (bfd_mach_n1, "n1h", TRUE, NEXT); -diff -Nur binutils-2.24.orig/bfd/doc/aoutx.texi binutils-2.24/bfd/doc/aoutx.texi ---- binutils-2.24.orig/bfd/doc/aoutx.texi 2013-11-18 09:49:27.000000000 +0100 -+++ binutils-2.24/bfd/doc/aoutx.texi 1970-01-01 01:00:00.000000000 +0100 -@@ -1,213 +0,0 @@ --@section a.out backends -- -- --@strong{Description}@* --BFD supports a number of different flavours of a.out format, --though the major differences are only the sizes of the --structures on disk, and the shape of the relocation --information. -- --The support is split into a basic support file @file{aoutx.h} --and other files which derive functions from the base. One --derivation file is @file{aoutf1.h} (for a.out flavour 1), and --adds to the basic a.out functions support for sun3, sun4, 386 --and 29k a.out files, to create a target jump vector for a --specific target. -- --This information is further split out into more specific files --for each machine, including @file{sunos.c} for sun3 and sun4, --@file{newsos3.c} for the Sony NEWS, and @file{demo64.c} for a --demonstration of a 64 bit a.out format. -- --The base file @file{aoutx.h} defines general mechanisms for --reading and writing records to and from disk and various --other methods which BFD requires. It is included by --@file{aout32.c} and @file{aout64.c} to form the names --@code{aout_32_swap_exec_header_in}, @code{aout_64_swap_exec_header_in}, etc. -- --As an example, this is what goes on to make the back end for a --sun4, from @file{aout32.c}: -- --@example -- #define ARCH_SIZE 32 -- #include "aoutx.h" --@end example -- --Which exports names: -- --@example -- ... -- aout_32_canonicalize_reloc -- aout_32_find_nearest_line -- aout_32_get_lineno -- aout_32_get_reloc_upper_bound -- ... --@end example -- --from @file{sunos.c}: -- --@example -- #define TARGET_NAME "a.out-sunos-big" -- #define VECNAME sunos_big_vec -- #include "aoutf1.h" --@end example -- --requires all the names from @file{aout32.c}, and produces the jump vector -- --@example -- sunos_big_vec --@end example -- --The file @file{host-aout.c} is a special case. It is for a large set --of hosts that use ``more or less standard'' a.out files, and --for which cross-debugging is not interesting. It uses the --standard 32-bit a.out support routines, but determines the --file offsets and addresses of the text, data, and BSS --sections, the machine architecture and machine type, and the --entry point address, in a host-dependent manner. Once these --values have been determined, generic code is used to handle --the object file. -- --When porting it to run on a new system, you must supply: -- --@example -- HOST_PAGE_SIZE -- HOST_SEGMENT_SIZE -- HOST_MACHINE_ARCH (optional) -- HOST_MACHINE_MACHINE (optional) -- HOST_TEXT_START_ADDR -- HOST_STACK_END_ADDR --@end example -- --in the file @file{../include/sys/h-@var{XXX}.h} (for your host). These --values, plus the structures and macros defined in @file{a.out.h} on --your host system, will produce a BFD target that will access --ordinary a.out files on your host. To configure a new machine --to use @file{host-aout.c}, specify: -- --@example -- TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec -- TDEPFILES= host-aout.o trad-core.o --@end example -- --in the @file{config/@var{XXX}.mt} file, and modify @file{configure.in} --to use the --@file{@var{XXX}.mt} file (by setting "@code{bfd_target=XXX}") when your --configuration is selected. -- --@subsection Relocations -- -- --@strong{Description}@* --The file @file{aoutx.h} provides for both the @emph{standard} --and @emph{extended} forms of a.out relocation records. -- --The standard records contain only an --address, a symbol index, and a type field. The extended records --(used on 29ks and sparcs) also have a full integer for an --addend. -- --@subsection Internal entry points -- -- --@strong{Description}@* --@file{aoutx.h} exports several routines for accessing the --contents of an a.out file, which are gathered and exported in --turn by various format specific files (eg sunos.c). -- --@findex aout_@var{size}_swap_exec_header_in --@subsubsection @code{aout_@var{size}_swap_exec_header_in} --@strong{Synopsis} --@example --void aout_@var{size}_swap_exec_header_in, -- (bfd *abfd, -- struct external_exec *bytes, -- struct internal_exec *execp); --@end example --@strong{Description}@* --Swap the information in an executable header @var{raw_bytes} taken --from a raw byte stream memory image into the internal exec header --structure @var{execp}. -- --@findex aout_@var{size}_swap_exec_header_out --@subsubsection @code{aout_@var{size}_swap_exec_header_out} --@strong{Synopsis} --@example --void aout_@var{size}_swap_exec_header_out -- (bfd *abfd, -- struct internal_exec *execp, -- struct external_exec *raw_bytes); --@end example --@strong{Description}@* --Swap the information in an internal exec header structure --@var{execp} into the buffer @var{raw_bytes} ready for writing to disk. -- --@findex aout_@var{size}_some_aout_object_p --@subsubsection @code{aout_@var{size}_some_aout_object_p} --@strong{Synopsis} --@example --const bfd_target *aout_@var{size}_some_aout_object_p -- (bfd *abfd, -- struct internal_exec *execp, -- const bfd_target *(*callback_to_real_object_p) (bfd *)); --@end example --@strong{Description}@* --Some a.out variant thinks that the file open in @var{abfd} --checking is an a.out file. Do some more checking, and set up --for access if it really is. Call back to the calling --environment's "finish up" function just before returning, to --handle any last-minute setup. -- --@findex aout_@var{size}_mkobject --@subsubsection @code{aout_@var{size}_mkobject} --@strong{Synopsis} --@example --bfd_boolean aout_@var{size}_mkobject, (bfd *abfd); --@end example --@strong{Description}@* --Initialize BFD @var{abfd} for use with a.out files. -- --@findex aout_@var{size}_machine_type --@subsubsection @code{aout_@var{size}_machine_type} --@strong{Synopsis} --@example --enum machine_type aout_@var{size}_machine_type -- (enum bfd_architecture arch, -- unsigned long machine, -- bfd_boolean *unknown); --@end example --@strong{Description}@* --Keep track of machine architecture and machine type for --a.out's. Return the @code{machine_type} for a particular --architecture and machine, or @code{M_UNKNOWN} if that exact architecture --and machine can't be represented in a.out format. -- --If the architecture is understood, machine type 0 (default) --is always understood. -- --@findex aout_@var{size}_set_arch_mach --@subsubsection @code{aout_@var{size}_set_arch_mach} --@strong{Synopsis} --@example --bfd_boolean aout_@var{size}_set_arch_mach, -- (bfd *, -- enum bfd_architecture arch, -- unsigned long machine); --@end example --@strong{Description}@* --Set the architecture and the machine of the BFD @var{abfd} to the --values @var{arch} and @var{machine}. Verify that @var{abfd}'s format --can support the architecture required. -- --@findex aout_@var{size}_new_section_hook --@subsubsection @code{aout_@var{size}_new_section_hook} --@strong{Synopsis} --@example --bfd_boolean aout_@var{size}_new_section_hook, -- (bfd *abfd, -- asection *newsect); --@end example --@strong{Description}@* --Called by the BFD in response to a @code{bfd_make_section} --request. -- -diff -Nur binutils-2.24.orig/bfd/doc/archive.texi binutils-2.24/bfd/doc/archive.texi ---- binutils-2.24.orig/bfd/doc/archive.texi 2013-11-18 09:49:27.000000000 +0100 -+++ binutils-2.24/bfd/doc/archive.texi 1970-01-01 01:00:00.000000000 +0100 -@@ -1,105 +0,0 @@ --@section Archives -- -- --@strong{Description}@* --An archive (or library) is just another BFD. It has a symbol --table, although there's not much a user program will do with it. -- --The big difference between an archive BFD and an ordinary BFD --is that the archive doesn't have sections. Instead it has a --chain of BFDs that are considered its contents. These BFDs can --be manipulated like any other. The BFDs contained in an --archive opened for reading will all be opened for reading. You --may put either input or output BFDs into an archive opened for --output; they will be handled correctly when the archive is closed. -- --Use @code{bfd_openr_next_archived_file} to step through --the contents of an archive opened for input. You don't --have to read the entire archive if you don't want --to! Read it until you find what you want. -- --A BFD returned by @code{bfd_openr_next_archived_file} can be --closed manually with @code{bfd_close}. If you do not close it, --then a second iteration through the members of an archive may --return the same BFD. If you close the archive BFD, then all --the member BFDs will automatically be closed as well. -- --Archive contents of output BFDs are chained through the --@code{archive_next} pointer in a BFD. The first one is findable --through the @code{archive_head} slot of the archive. Set it with --@code{bfd_set_archive_head} (q.v.). A given BFD may be in only --one open output archive at a time. -- --As expected, the BFD archive code is more general than the --archive code of any given environment. BFD archives may --contain files of different formats (e.g., a.out and coff) and --even different architectures. You may even place archives --recursively into archives! -- --This can cause unexpected confusion, since some archive --formats are more expressive than others. For instance, Intel --COFF archives can preserve long filenames; SunOS a.out archives --cannot. If you move a file from the first to the second --format and back again, the filename may be truncated. --Likewise, different a.out environments have different --conventions as to how they truncate filenames, whether they --preserve directory names in filenames, etc. When --interoperating with native tools, be sure your files are --homogeneous. -- --Beware: most of these formats do not react well to the --presence of spaces in filenames. We do the best we can, but --can't always handle this case due to restrictions in the format of --archives. Many Unix utilities are braindead in regards to --spaces and such in filenames anyway, so this shouldn't be much --of a restriction. -- --Archives are supported in BFD in @code{archive.c}. -- --@subsection Archive functions -- -- --@findex bfd_get_next_mapent --@subsubsection @code{bfd_get_next_mapent} --@strong{Synopsis} --@example --symindex bfd_get_next_mapent -- (bfd *abfd, symindex previous, carsym **sym); --@end example --@strong{Description}@* --Step through archive @var{abfd}'s symbol table (if it --has one). Successively update @var{sym} with the next symbol's --information, returning that symbol's (internal) index into the --symbol table. -- --Supply @code{BFD_NO_MORE_SYMBOLS} as the @var{previous} entry to get --the first one; returns @code{BFD_NO_MORE_SYMBOLS} when you've already --got the last one. -- --A @code{carsym} is a canonical archive symbol. The only --user-visible element is its name, a null-terminated string. -- --@findex bfd_set_archive_head --@subsubsection @code{bfd_set_archive_head} --@strong{Synopsis} --@example --bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); --@end example --@strong{Description}@* --Set the head of the chain of --BFDs contained in the archive @var{output} to @var{new_head}. -- --@findex bfd_openr_next_archived_file --@subsubsection @code{bfd_openr_next_archived_file} --@strong{Synopsis} --@example --bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); --@end example --@strong{Description}@* --Provided a BFD, @var{archive}, containing an archive and NULL, open --an input BFD on the first contained element and returns that. --Subsequent calls should pass --the archive and the previous return value to return a created --BFD to the next contained element. NULL is returned when there --are no more. -- -diff -Nur binutils-2.24.orig/bfd/doc/archures.texi binutils-2.24/bfd/doc/archures.texi ---- binutils-2.24.orig/bfd/doc/archures.texi 2013-11-18 09:49:27.000000000 +0100 -+++ binutils-2.24/bfd/doc/archures.texi 1970-01-01 01:00:00.000000000 +0100 -@@ -1,706 +0,0 @@ --@section Architectures --BFD keeps one atom in a BFD describing the --architecture of the data attached to the BFD: a pointer to a --@code{bfd_arch_info_type}. -- --Pointers to structures can be requested independently of a BFD --so that an architecture's information can be interrogated --without access to an open BFD. -- --The architecture information is provided by each architecture package. --The set of default architectures is selected by the macro --@code{SELECT_ARCHITECTURES}. This is normally set up in the --@file{config/@var{target}.mt} file of your choice. If the name is not --defined, then all the architectures supported are included. -- --When BFD starts up, all the architectures are called with an --initialize method. It is up to the architecture back end to --insert as many items into the list of architectures as it wants to; --generally this would be one for each machine and one for the --default case (an item with a machine field of 0). -- --BFD's idea of an architecture is implemented in @file{archures.c}. -- --@subsection bfd_architecture -- -- --@strong{Description}@* --This enum gives the object file's CPU architecture, in a --global sense---i.e., what processor family does it belong to? --Another field indicates which processor within --the family is in use. The machine gives a number which --distinguishes different versions of the architecture, --containing, for example, 2 and 3 for Intel i960 KA and i960 KB, --and 68020 and 68030 for Motorola 68020 and 68030. --@example --enum bfd_architecture --@{ -- bfd_arch_unknown, /* File arch not known. */ -- bfd_arch_obscure, /* Arch known, not one of these. */ -- bfd_arch_m68k, /* Motorola 68xxx */ --#define bfd_mach_m68000 1 --#define bfd_mach_m68008 2 --#define bfd_mach_m68010 3 --#define bfd_mach_m68020 4 --#define bfd_mach_m68030 5 --#define bfd_mach_m68040 6 --#define bfd_mach_m68060 7 --#define bfd_mach_cpu32 8 --#define bfd_mach_fido 9 --#define bfd_mach_mcf_isa_a_nodiv 10 --#define bfd_mach_mcf_isa_a 11 --#define bfd_mach_mcf_isa_a_mac 12 --#define bfd_mach_mcf_isa_a_emac 13 --#define bfd_mach_mcf_isa_aplus 14 --#define bfd_mach_mcf_isa_aplus_mac 15 --#define bfd_mach_mcf_isa_aplus_emac 16 --#define bfd_mach_mcf_isa_b_nousp 17 --#define bfd_mach_mcf_isa_b_nousp_mac 18 --#define bfd_mach_mcf_isa_b_nousp_emac 19 --#define bfd_mach_mcf_isa_b 20 --#define bfd_mach_mcf_isa_b_mac 21 --#define bfd_mach_mcf_isa_b_emac 22 --#define bfd_mach_mcf_isa_b_float 23 --#define bfd_mach_mcf_isa_b_float_mac 24 --#define bfd_mach_mcf_isa_b_float_emac 25 --#define bfd_mach_mcf_isa_c 26 --#define bfd_mach_mcf_isa_c_mac 27 --#define bfd_mach_mcf_isa_c_emac 28 --#define bfd_mach_mcf_isa_c_nodiv 29 --#define bfd_mach_mcf_isa_c_nodiv_mac 30 --#define bfd_mach_mcf_isa_c_nodiv_emac 31 -- bfd_arch_vax, /* DEC Vax */ -- bfd_arch_i960, /* Intel 960 */ -- /* The order of the following is important. -- lower number indicates a machine type that -- only accepts a subset of the instructions -- available to machines with higher numbers. -- The exception is the "ca", which is -- incompatible with all other machines except -- "core". */ -- --#define bfd_mach_i960_core 1 --#define bfd_mach_i960_ka_sa 2 --#define bfd_mach_i960_kb_sb 3 --#define bfd_mach_i960_mc 4 --#define bfd_mach_i960_xa 5 --#define bfd_mach_i960_ca 6 --#define bfd_mach_i960_jx 7 --#define bfd_mach_i960_hx 8 -- -- bfd_arch_or32, /* OpenRISC 32 */ -- -- bfd_arch_sparc, /* SPARC */ --#define bfd_mach_sparc 1 --/* The difference between v8plus and v9 is that v9 is a true 64 bit env. */ --#define bfd_mach_sparc_sparclet 2 --#define bfd_mach_sparc_sparclite 3 --#define bfd_mach_sparc_v8plus 4 --#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */ --#define bfd_mach_sparc_sparclite_le 6 --#define bfd_mach_sparc_v9 7 --#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */ --#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */ --#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */ --/* Nonzero if MACH has the v9 instruction set. */ --#define bfd_mach_sparc_v9_p(mach) \ -- ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \ -- && (mach) != bfd_mach_sparc_sparclite_le) --/* Nonzero if MACH is a 64 bit sparc architecture. */ --#define bfd_mach_sparc_64bit_p(mach) \ -- ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb) -- bfd_arch_spu, /* PowerPC SPU */ --#define bfd_mach_spu 256 -- bfd_arch_mips, /* MIPS Rxxxx */ --#define bfd_mach_mips3000 3000 --#define bfd_mach_mips3900 3900 --#define bfd_mach_mips4000 4000 --#define bfd_mach_mips4010 4010 --#define bfd_mach_mips4100 4100 --#define bfd_mach_mips4111 4111 --#define bfd_mach_mips4120 4120 --#define bfd_mach_mips4300 4300 --#define bfd_mach_mips4400 4400 --#define bfd_mach_mips4600 4600 --#define bfd_mach_mips4650 4650 --#define bfd_mach_mips5000 5000 --#define bfd_mach_mips5400 5400 --#define bfd_mach_mips5500 5500 --#define bfd_mach_mips5900 5900 --#define bfd_mach_mips6000 6000 --#define bfd_mach_mips7000 7000 --#define bfd_mach_mips8000 8000 --#define bfd_mach_mips9000 9000 --#define bfd_mach_mips10000 10000 --#define bfd_mach_mips12000 12000 --#define bfd_mach_mips14000 14000 --#define bfd_mach_mips16000 16000 --#define bfd_mach_mips16 16 --#define bfd_mach_mips5 5 --#define bfd_mach_mips_loongson_2e 3001 --#define bfd_mach_mips_loongson_2f 3002 --#define bfd_mach_mips_loongson_3a 3003 --#define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ --#define bfd_mach_mips_octeon 6501 --#define bfd_mach_mips_octeonp 6601 --#define bfd_mach_mips_octeon2 6502 --#define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ --#define bfd_mach_mipsisa32 32 --#define bfd_mach_mipsisa32r2 33 --#define bfd_mach_mipsisa64 64 --#define bfd_mach_mipsisa64r2 65 --#define bfd_mach_mips_micromips 96 -- bfd_arch_i386, /* Intel 386 */ --#define bfd_mach_i386_intel_syntax (1 << 0) --#define bfd_mach_i386_i8086 (1 << 1) --#define bfd_mach_i386_i386 (1 << 2) --#define bfd_mach_x86_64 (1 << 3) --#define bfd_mach_x64_32 (1 << 4) --#define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax) --#define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax) --#define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax) -- bfd_arch_l1om, /* Intel L1OM */ --#define bfd_mach_l1om (1 << 5) --#define bfd_mach_l1om_intel_syntax (bfd_mach_l1om | bfd_mach_i386_intel_syntax) -- bfd_arch_k1om, /* Intel K1OM */ --#define bfd_mach_k1om (1 << 6) --#define bfd_mach_k1om_intel_syntax (bfd_mach_k1om | bfd_mach_i386_intel_syntax) --#define bfd_mach_i386_nacl (1 << 7) --#define bfd_mach_i386_i386_nacl (bfd_mach_i386_i386 | bfd_mach_i386_nacl) --#define bfd_mach_x86_64_nacl (bfd_mach_x86_64 | bfd_mach_i386_nacl) --#define bfd_mach_x64_32_nacl (bfd_mach_x64_32 | bfd_mach_i386_nacl) -- bfd_arch_we32k, /* AT&T WE32xxx */ -- bfd_arch_tahoe, /* CCI/Harris Tahoe */ -- bfd_arch_i860, /* Intel 860 */ -- bfd_arch_i370, /* IBM 360/370 Mainframes */ -- bfd_arch_romp, /* IBM ROMP PC/RT */ -- bfd_arch_convex, /* Convex */ -- bfd_arch_m88k, /* Motorola 88xxx */ -- bfd_arch_m98k, /* Motorola 98xxx */ -- bfd_arch_pyramid, /* Pyramid Technology */ -- bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */ --#define bfd_mach_h8300 1 --#define bfd_mach_h8300h 2 --#define bfd_mach_h8300s 3 --#define bfd_mach_h8300hn 4 --#define bfd_mach_h8300sn 5 --#define bfd_mach_h8300sx 6 --#define bfd_mach_h8300sxn 7 -- bfd_arch_pdp11, /* DEC PDP-11 */ -- bfd_arch_plugin, -- bfd_arch_powerpc, /* PowerPC */ --#define bfd_mach_ppc 32 --#define bfd_mach_ppc64 64 --#define bfd_mach_ppc_403 403 --#define bfd_mach_ppc_403gc 4030 --#define bfd_mach_ppc_405 405 --#define bfd_mach_ppc_505 505 --#define bfd_mach_ppc_601 601 --#define bfd_mach_ppc_602 602 --#define bfd_mach_ppc_603 603 --#define bfd_mach_ppc_ec603e 6031 --#define bfd_mach_ppc_604 604 --#define bfd_mach_ppc_620 620 --#define bfd_mach_ppc_630 630 --#define bfd_mach_ppc_750 750 --#define bfd_mach_ppc_860 860 --#define bfd_mach_ppc_a35 35 --#define bfd_mach_ppc_rs64ii 642 --#define bfd_mach_ppc_rs64iii 643 --#define bfd_mach_ppc_7400 7400 --#define bfd_mach_ppc_e500 500 --#define bfd_mach_ppc_e500mc 5001 --#define bfd_mach_ppc_e500mc64 5005 --#define bfd_mach_ppc_e5500 5006 --#define bfd_mach_ppc_e6500 5007 --#define bfd_mach_ppc_titan 83 --#define bfd_mach_ppc_vle 84 -- bfd_arch_rs6000, /* IBM RS/6000 */ --#define bfd_mach_rs6k 6000 --#define bfd_mach_rs6k_rs1 6001 --#define bfd_mach_rs6k_rsc 6003 --#define bfd_mach_rs6k_rs2 6002 -- bfd_arch_hppa, /* HP PA RISC */ --#define bfd_mach_hppa10 10 --#define bfd_mach_hppa11 11 --#define bfd_mach_hppa20 20 --#define bfd_mach_hppa20w 25 -- bfd_arch_d10v, /* Mitsubishi D10V */ --#define bfd_mach_d10v 1 --#define bfd_mach_d10v_ts2 2 --#define bfd_mach_d10v_ts3 3 -- bfd_arch_d30v, /* Mitsubishi D30V */ -- bfd_arch_dlx, /* DLX */ -- bfd_arch_m68hc11, /* Motorola 68HC11 */ -- bfd_arch_m68hc12, /* Motorola 68HC12 */ --#define bfd_mach_m6812_default 0 --#define bfd_mach_m6812 1 --#define bfd_mach_m6812s 2 -- bfd_arch_m9s12x, /* Freescale S12X */ -- bfd_arch_m9s12xg, /* Freescale XGATE */ -- bfd_arch_z8k, /* Zilog Z8000 */ --#define bfd_mach_z8001 1 --#define bfd_mach_z8002 2 -- bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */ -- bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */ --#define bfd_mach_sh 1 --#define bfd_mach_sh2 0x20 --#define bfd_mach_sh_dsp 0x2d --#define bfd_mach_sh2a 0x2a --#define bfd_mach_sh2a_nofpu 0x2b --#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1 --#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2 --#define bfd_mach_sh2a_or_sh4 0x2a3 --#define bfd_mach_sh2a_or_sh3e 0x2a4 --#define bfd_mach_sh2e 0x2e --#define bfd_mach_sh3 0x30 --#define bfd_mach_sh3_nommu 0x31 --#define bfd_mach_sh3_dsp 0x3d --#define bfd_mach_sh3e 0x3e --#define bfd_mach_sh4 0x40 --#define bfd_mach_sh4_nofpu 0x41 --#define bfd_mach_sh4_nommu_nofpu 0x42 --#define bfd_mach_sh4a 0x4a --#define bfd_mach_sh4a_nofpu 0x4b --#define bfd_mach_sh4al_dsp 0x4d --#define bfd_mach_sh5 0x50 -- bfd_arch_alpha, /* Dec Alpha */ --#define bfd_mach_alpha_ev4 0x10 --#define bfd_mach_alpha_ev5 0x20 --#define bfd_mach_alpha_ev6 0x30 -- bfd_arch_arm, /* Advanced Risc Machines ARM. */ --#define bfd_mach_arm_unknown 0 --#define bfd_mach_arm_2 1 --#define bfd_mach_arm_2a 2 --#define bfd_mach_arm_3 3 --#define bfd_mach_arm_3M 4 --#define bfd_mach_arm_4 5 --#define bfd_mach_arm_4T 6 --#define bfd_mach_arm_5 7 --#define bfd_mach_arm_5T 8 --#define bfd_mach_arm_5TE 9 --#define bfd_mach_arm_XScale 10 --#define bfd_mach_arm_ep9312 11 --#define bfd_mach_arm_iWMMXt 12 --#define bfd_mach_arm_iWMMXt2 13 -- bfd_arch_ns32k, /* National Semiconductors ns32000 */ -- bfd_arch_w65, /* WDC 65816 */ -- bfd_arch_tic30, /* Texas Instruments TMS320C30 */ -- bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */ --#define bfd_mach_tic3x 30 --#define bfd_mach_tic4x 40 -- bfd_arch_tic54x, /* Texas Instruments TMS320C54X */ -- bfd_arch_tic6x, /* Texas Instruments TMS320C6X */ -- bfd_arch_tic80, /* TI TMS320c80 (MVP) */ -- bfd_arch_v850, /* NEC V850 */ -- bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */ --#define bfd_mach_v850 1 --#define bfd_mach_v850e 'E' --#define bfd_mach_v850e1 '1' --#define bfd_mach_v850e2 0x4532 --#define bfd_mach_v850e2v3 0x45325633 --#define bfd_mach_v850e3v5 0x45335635 /* ('E'|'3'|'V'|'5') */ -- bfd_arch_arc, /* ARC Cores */ --#define bfd_mach_arc_5 5 --#define bfd_mach_arc_6 6 --#define bfd_mach_arc_7 7 --#define bfd_mach_arc_8 8 -- bfd_arch_m32c, /* Renesas M16C/M32C. */ --#define bfd_mach_m16c 0x75 --#define bfd_mach_m32c 0x78 -- bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */ --#define bfd_mach_m32r 1 /* For backwards compatibility. */ --#define bfd_mach_m32rx 'x' --#define bfd_mach_m32r2 '2' -- bfd_arch_mn10200, /* Matsushita MN10200 */ -- bfd_arch_mn10300, /* Matsushita MN10300 */ --#define bfd_mach_mn10300 300 --#define bfd_mach_am33 330 --#define bfd_mach_am33_2 332 -- bfd_arch_fr30, --#define bfd_mach_fr30 0x46523330 -- bfd_arch_frv, --#define bfd_mach_frv 1 --#define bfd_mach_frvsimple 2 --#define bfd_mach_fr300 300 --#define bfd_mach_fr400 400 --#define bfd_mach_fr450 450 --#define bfd_mach_frvtomcat 499 /* fr500 prototype */ --#define bfd_mach_fr500 500 --#define bfd_mach_fr550 550 -- bfd_arch_moxie, /* The moxie processor */ --#define bfd_mach_moxie 1 -- bfd_arch_mcore, -- bfd_arch_mep, --#define bfd_mach_mep 1 --#define bfd_mach_mep_h1 0x6831 --#define bfd_mach_mep_c5 0x6335 -- bfd_arch_metag, --#define bfd_mach_metag 1 -- bfd_arch_ia64, /* HP/Intel ia64 */ --#define bfd_mach_ia64_elf64 64 --#define bfd_mach_ia64_elf32 32 -- bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ --#define bfd_mach_ip2022 1 --#define bfd_mach_ip2022ext 2 -- bfd_arch_iq2000, /* Vitesse IQ2000. */ --#define bfd_mach_iq2000 1 --#define bfd_mach_iq10 2 -- bfd_arch_epiphany, /* Adapteva EPIPHANY */ --#define bfd_mach_epiphany16 1 --#define bfd_mach_epiphany32 2 -- bfd_arch_mt, --#define bfd_mach_ms1 1 --#define bfd_mach_mrisc2 2 --#define bfd_mach_ms2 3 -- bfd_arch_pj, -- bfd_arch_avr, /* Atmel AVR microcontrollers. */ --#define bfd_mach_avr1 1 --#define bfd_mach_avr2 2 --#define bfd_mach_avr25 25 --#define bfd_mach_avr3 3 --#define bfd_mach_avr31 31 --#define bfd_mach_avr35 35 --#define bfd_mach_avr4 4 --#define bfd_mach_avr5 5 --#define bfd_mach_avr51 51 --#define bfd_mach_avr6 6 --#define bfd_mach_avrxmega1 101 --#define bfd_mach_avrxmega2 102 --#define bfd_mach_avrxmega3 103 --#define bfd_mach_avrxmega4 104 --#define bfd_mach_avrxmega5 105 --#define bfd_mach_avrxmega6 106 --#define bfd_mach_avrxmega7 107 -- bfd_arch_bfin, /* ADI Blackfin */ --#define bfd_mach_bfin 1 -- bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ --#define bfd_mach_cr16 1 -- bfd_arch_cr16c, /* National Semiconductor CompactRISC. */ --#define bfd_mach_cr16c 1 -- bfd_arch_crx, /* National Semiconductor CRX. */ --#define bfd_mach_crx 1 -- bfd_arch_cris, /* Axis CRIS */ --#define bfd_mach_cris_v0_v10 255 --#define bfd_mach_cris_v32 32 --#define bfd_mach_cris_v10_v32 1032 -- bfd_arch_rl78, --#define bfd_mach_rl78 0x75 -- bfd_arch_rx, /* Renesas RX. */ --#define bfd_mach_rx 0x75 -- bfd_arch_s390, /* IBM s390 */ --#define bfd_mach_s390_31 31 --#define bfd_mach_s390_64 64 -- bfd_arch_score, /* Sunplus score */ --#define bfd_mach_score3 3 --#define bfd_mach_score7 7 -- bfd_arch_openrisc, /* OpenRISC */ -- bfd_arch_mmix, /* Donald Knuth's educational processor. */ -- bfd_arch_xstormy16, --#define bfd_mach_xstormy16 1 -- bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ --#define bfd_mach_msp11 11 --#define bfd_mach_msp110 110 --#define bfd_mach_msp12 12 --#define bfd_mach_msp13 13 --#define bfd_mach_msp14 14 --#define bfd_mach_msp15 15 --#define bfd_mach_msp16 16 --#define bfd_mach_msp20 20 --#define bfd_mach_msp21 21 --#define bfd_mach_msp22 22 --#define bfd_mach_msp23 23 --#define bfd_mach_msp24 24 --#define bfd_mach_msp26 26 --#define bfd_mach_msp31 31 --#define bfd_mach_msp32 32 --#define bfd_mach_msp33 33 --#define bfd_mach_msp41 41 --#define bfd_mach_msp42 42 --#define bfd_mach_msp43 43 --#define bfd_mach_msp44 44 --#define bfd_mach_msp430x 45 --#define bfd_mach_msp46 46 --#define bfd_mach_msp47 47 --#define bfd_mach_msp54 54 -- bfd_arch_xc16x, /* Infineon's XC16X Series. */ --#define bfd_mach_xc16x 1 --#define bfd_mach_xc16xl 2 --#define bfd_mach_xc16xs 3 -- bfd_arch_xgate, /* Freescale XGATE */ --#define bfd_mach_xgate 1 -- bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ --#define bfd_mach_xtensa 1 -- bfd_arch_z80, --#define bfd_mach_z80strict 1 /* No undocumented opcodes. */ --#define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */ --#define bfd_mach_z80full 7 /* All undocumented instructions. */ --#define bfd_mach_r800 11 /* R800: successor with multiplication. */ -- bfd_arch_lm32, /* Lattice Mico32 */ --#define bfd_mach_lm32 1 -- bfd_arch_microblaze,/* Xilinx MicroBlaze. */ -- bfd_arch_tilepro, /* Tilera TILEPro */ -- bfd_arch_tilegx, /* Tilera TILE-Gx */ --#define bfd_mach_tilepro 1 --#define bfd_mach_tilegx 1 --#define bfd_mach_tilegx32 2 -- bfd_arch_aarch64, /* AArch64 */ --#define bfd_mach_aarch64 0 --#define bfd_mach_aarch64_ilp32 32 -- bfd_arch_nios2, --#define bfd_mach_nios2 0 -- bfd_arch_last -- @}; --@end example -- --@subsection bfd_arch_info -- -- --@strong{Description}@* --This structure contains information on architectures for use --within BFD. --@example -- --typedef struct bfd_arch_info --@{ -- int bits_per_word; -- int bits_per_address; -- int bits_per_byte; -- enum bfd_architecture arch; -- unsigned long mach; -- const char *arch_name; -- const char *printable_name; -- unsigned int section_align_power; -- /* TRUE if this is the default machine for the architecture. -- The default arch should be the first entry for an arch so that -- all the entries for that arch can be accessed via @code{next}. */ -- bfd_boolean the_default; -- const struct bfd_arch_info * (*compatible) -- (const struct bfd_arch_info *a, const struct bfd_arch_info *b); -- -- bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); -- -- /* Allocate via bfd_malloc and return a fill buffer of size COUNT. If -- IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is -- TRUE, the buffer contains code. */ -- void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian, -- bfd_boolean code); -- -- const struct bfd_arch_info *next; --@} --bfd_arch_info_type; -- --@end example -- --@findex bfd_printable_name --@subsubsection @code{bfd_printable_name} --@strong{Synopsis} --@example --const char *bfd_printable_name (bfd *abfd); --@end example --@strong{Description}@* --Return a printable string representing the architecture and machine --from the pointer to the architecture info structure. -- --@findex bfd_scan_arch --@subsubsection @code{bfd_scan_arch} --@strong{Synopsis} --@example --const bfd_arch_info_type *bfd_scan_arch (const char *string); --@end example --@strong{Description}@* --Figure out if BFD supports any cpu which could be described with --the name @var{string}. Return a pointer to an @code{arch_info} --structure if a machine is found, otherwise NULL. -- --@findex bfd_arch_list --@subsubsection @code{bfd_arch_list} --@strong{Synopsis} --@example --const char **bfd_arch_list (void); --@end example --@strong{Description}@* --Return a freshly malloced NULL-terminated vector of the names --of all the valid BFD architectures. Do not modify the names. -- --@findex bfd_arch_get_compatible --@subsubsection @code{bfd_arch_get_compatible} --@strong{Synopsis} --@example --const bfd_arch_info_type *bfd_arch_get_compatible -- (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); --@end example --@strong{Description}@* --Determine whether two BFDs' architectures and machine types --are compatible. Calculates the lowest common denominator --between the two architectures and machine types implied by --the BFDs and returns a pointer to an @code{arch_info} structure --describing the compatible machine. -- --@findex bfd_default_arch_struct --@subsubsection @code{bfd_default_arch_struct} --@strong{Description}@* --The @code{bfd_default_arch_struct} is an item of --@code{bfd_arch_info_type} which has been initialized to a fairly --generic state. A BFD starts life by pointing to this --structure, until the correct back end has determined the real --architecture of the file. --@example --extern const bfd_arch_info_type bfd_default_arch_struct; --@end example -- --@findex bfd_set_arch_info --@subsubsection @code{bfd_set_arch_info} --@strong{Synopsis} --@example --void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); --@end example --@strong{Description}@* --Set the architecture info of @var{abfd} to @var{arg}. -- --@findex bfd_default_set_arch_mach --@subsubsection @code{bfd_default_set_arch_mach} --@strong{Synopsis} --@example --bfd_boolean bfd_default_set_arch_mach -- (bfd *abfd, enum bfd_architecture arch, unsigned long mach); --@end example --@strong{Description}@* --Set the architecture and machine type in BFD @var{abfd} --to @var{arch} and @var{mach}. Find the correct --pointer to a structure and insert it into the @code{arch_info} --pointer. -- --@findex bfd_get_arch --@subsubsection @code{bfd_get_arch} --@strong{Synopsis} --@example --enum bfd_architecture bfd_get_arch (bfd *abfd); --@end example --@strong{Description}@* --Return the enumerated type which describes the BFD @var{abfd}'s --architecture. -- --@findex bfd_get_mach --@subsubsection @code{bfd_get_mach} --@strong{Synopsis} --@example --unsigned long bfd_get_mach (bfd *abfd); --@end example --@strong{Description}@* --Return the long type which describes the BFD @var{abfd}'s --machine. -- --@findex bfd_arch_bits_per_byte --@subsubsection @code{bfd_arch_bits_per_byte} --@strong{Synopsis} --@example --unsigned int bfd_arch_bits_per_byte (bfd *abfd); --@end example --@strong{Description}@* --Return the number of bits in one of the BFD @var{abfd}'s --architecture's bytes. -- --@findex bfd_arch_bits_per_address --@subsubsection @code{bfd_arch_bits_per_address} --@strong{Synopsis} --@example --unsigned int bfd_arch_bits_per_address (bfd *abfd); --@end example --@strong{Description}@* --Return the number of bits in one of the BFD @var{abfd}'s --architecture's addresses. -- --@findex bfd_default_compatible --@subsubsection @code{bfd_default_compatible} --@strong{Synopsis} --@example --const bfd_arch_info_type *bfd_default_compatible -- (const bfd_arch_info_type *a, const bfd_arch_info_type *b); --@end example --@strong{Description}@* --The default function for testing for compatibility. -- --@findex bfd_default_scan --@subsubsection @code{bfd_default_scan} --@strong{Synopsis} --@example --bfd_boolean bfd_default_scan -- (const struct bfd_arch_info *info, const char *string); --@end example --@strong{Description}@* --The default function for working out whether this is an --architecture hit and a machine hit. -- --@findex bfd_get_arch_info --@subsubsection @code{bfd_get_arch_info} --@strong{Synopsis} --@example --const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); --@end example --@strong{Description}@* --Return the architecture info struct in @var{abfd}. -- --@findex bfd_lookup_arch --@subsubsection @code{bfd_lookup_arch} --@strong{Synopsis} --@example --const bfd_arch_info_type *bfd_lookup_arch -- (enum bfd_architecture arch, unsigned long machine); --@end example --@strong{Description}@* --Look for the architecture info structure which matches the --arguments @var{arch} and @var{machine}. A machine of 0 matches the --machine/architecture structure which marks itself as the --default. -- --@findex bfd_printable_arch_mach --@subsubsection @code{bfd_printable_arch_mach} --@strong{Synopsis} --@example --const char *bfd_printable_arch_mach -- (enum bfd_architecture arch, unsigned long machine); --@end example --@strong{Description}@* --Return a printable string representing the architecture and --machine type. -- --This routine is depreciated. -- --@findex bfd_octets_per_byte --@subsubsection @code{bfd_octets_per_byte} --@strong{Synopsis} --@example --unsigned int bfd_octets_per_byte (bfd *abfd); --@end example --@strong{Description}@* --Return the number of octets (8-bit quantities) per target byte --(minimum addressable unit). In most cases, this will be one, but some --DSP targets have 16, 32, or even 48 bits per byte. -- --@findex bfd_arch_mach_octets_per_byte --@subsubsection @code{bfd_arch_mach_octets_per_byte} --@strong{Synopsis} --@example --unsigned int bfd_arch_mach_octets_per_byte -- (enum bfd_architecture arch, unsigned long machine); --@end example --@strong{Description}@* --See bfd_octets_per_byte. -- --This routine is provided for those cases where a bfd * is not --available -- --@findex bfd_arch_default_fill --@subsubsection @code{bfd_arch_default_fill} --@strong{Synopsis} --@example --void *bfd_arch_default_fill (bfd_size_type count, -- bfd_boolean is_bigendian, -- bfd_boolean code); --@end example --@strong{Description}@* --Allocate via bfd_malloc and return a fill buffer of size COUNT. --If IS_BIGENDIAN is TRUE, the order of bytes is big endian. If --CODE is TRUE, the buffer contains code. -- -diff -Nur binutils-2.24.orig/bfd/doc/bfd.info binutils-2.24/bfd/doc/bfd.info ---- binutils-2.24.orig/bfd/doc/bfd.info 2013-12-02 10:32:19.000000000 +0100 -+++ binutils-2.24/bfd/doc/bfd.info 1970-01-01 01:00:00.000000000 +0100 -@@ -1,13242 +0,0 @@ --This is bfd.info, produced by makeinfo version 4.8 from bfd.texinfo. -- --INFO-DIR-SECTION Software development --START-INFO-DIR-ENTRY --* Bfd: (bfd). The Binary File Descriptor library. --END-INFO-DIR-ENTRY -- -- This file documents the BFD library. -- -- Copyright (C) 1991 - 2013 Free Software Foundation, Inc. -- -- Permission is granted to copy, distribute and/or modify this document --under the terms of the GNU Free Documentation License, Version 1.3 or --any later version published by the Free