After applied this patch, bfd can be builded successfully. i.e $ make will runinto .......snip....... make[1]: *** [configure-opcodes] Error 1 .......snip....... Makefile.in, configure and bfd-in2.h are generate by other files. So their changes can be safely ignored. Makefile.in are regenerated from Makefile.am by automake-1.11.1 configure are regenerated from configure.in by autoconf-2.64 bfd-in2.h can be regenrated by make headers. Please notice that the version of automake and autoconf are really _important_ if you want to do it by yourself. Signed-off-by: LIU Zhiyou <liuzhiyou.cs@xxxxxxxxx> --- bfd/Makefile.am | 4 ++++ bfd/Makefile.in | 8 +++++++- bfd/archures.c | 1 + bfd/bfd-in2.h | 2 ++ bfd/configure | 2 +- bfd/configure.in | 1 + bfd/cpu-unicore32.c | 9 +++++---- bfd/elf32-unicore32.c | 18 ++++++++++++++++++ include/elf/common.h | 2 +- 9 files changed, 40 insertions(+), 7 deletions(-) diff --git a/bfd/Makefile.am b/bfd/Makefile.am index d86d899..a544da6 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -140,6 +140,7 @@ ALL_MACHINES = \ cpu-tic80.lo \ cpu-tilegx.lo \ cpu-tilepro.lo \ + cpu-unicore32.lo \ cpu-v850.lo \ cpu-v850_rh850.lo \ cpu-vax.lo \ @@ -222,6 +223,7 @@ ALL_MACHINES_CFILES = \ cpu-tic80.c \ cpu-tilegx.c \ cpu-tilepro.c \ + cpu-unicore32.c \ cpu-v850.c \ cpu-v850_rh850.c \ cpu-vax.c \ @@ -344,6 +346,7 @@ BFD32_BACKENDS = \ elf32-tic6x.lo \ elf32-tilegx.lo \ elf32-tilepro.lo \ + elf32-unicore32.lo \ elf32-v850.lo \ elf32-vax.lo \ elf32-xc16x.lo \ @@ -532,6 +535,7 @@ BFD32_BACKENDS_CFILES = \ elf32-tic6x.c \ elf32-tilegx.c \ elf32-tilepro.c \ + elf32-unicore32.c \ elf32-v850.c \ elf32-vax.c \ elf32-xc16x.c \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 92d9d08..2ea2830 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -440,6 +440,7 @@ ALL_MACHINES = \ cpu-tic80.lo \ cpu-tilegx.lo \ cpu-tilepro.lo \ + cpu-unicore32.lo \ cpu-v850.lo \ cpu-v850_rh850.lo \ cpu-vax.lo \ @@ -522,6 +523,7 @@ ALL_MACHINES_CFILES = \ cpu-tic80.c \ cpu-tilegx.c \ cpu-tilepro.c \ + cpu-unicore32.c \ cpu-v850.c \ cpu-v850_rh850.c \ cpu-vax.c \ @@ -645,6 +647,7 @@ BFD32_BACKENDS = \ elf32-tic6x.lo \ elf32-tilegx.lo \ elf32-tilepro.lo \ + elf32-unicore32.lo \ elf32-v850.lo \ elf32-vax.lo \ elf32-xc16x.lo \ @@ -833,6 +836,7 @@ BFD32_BACKENDS_CFILES = \ elf32-tic6x.c \ elf32-tilegx.c \ elf32-tilepro.c \ + elf32-unicore32.c \ elf32-v850.c \ elf32-vax.c \ elf32-xc16x.c \ @@ -1346,8 +1350,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-tic80.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-tilegx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-tilepro.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-v850_rh850.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-unicore32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-v850.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-v850_rh850.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-vax.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-w65.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-we32k.Plo@am__quote@ @@ -1429,6 +1434,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-tic6x.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-tilegx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-tilepro.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-unicore32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-v850.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-vax.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-xc16x.Plo@am__quote@ diff --git a/bfd/archures.c b/bfd/archures.c index aedde6b..6afbaa5 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -424,6 +424,7 @@ DESCRIPTION . bfd_arch_openrisc, {* OpenRISC *} . bfd_arch_mmix, {* Donald Knuth's educational processor. *} . bfd_arch_unicore32, {* UniCore32 *} +.#define bfd_mach_unicore32 1 . bfd_arch_xstormy16, .#define bfd_mach_xstormy16 1 . bfd_arch_msp430, {* Texas Instruments MSP430 architecture. *} diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index bba8757..8db0901 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2154,6 +2154,8 @@ enum bfd_architecture #define bfd_mach_score7 7 bfd_arch_openrisc, /* OpenRISC */ bfd_arch_mmix, /* Donald Knuth's educational processor. */ + bfd_arch_unicore32, /* UniCore32 */ +#define bfd_mach_unicore32 1 bfd_arch_xstormy16, #define bfd_mach_xstormy16 1 bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ diff --git a/bfd/configure b/bfd/configure index 6646e68..6d41a70 100755 --- a/bfd/configure +++ b/bfd/configure @@ -15347,11 +15347,11 @@ do tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_tradlittlemips_vec | bfd_elf32_tradlittlemips_freebsd_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;; - bfd_elf32_unicore32_vec) tb="$tb elf32-unicore32.lo elf32.lo $elf" ;; bfd_elf32_us_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;; bfd_elf32_v850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; bfd_elf32_v850_rh850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; bfd_elf32_vax_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;; + bfd_elf32_unicore32_vec) tb="$tb elf32-unicore32.lo elf32.lo $elf" ;; bfd_elf32_xstormy16_vec) tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;; bfd_elf32_xc16x_vec) tb="$tb elf32-xc16x.lo elf32.lo $elf" ;; bfd_elf32_xgate_vec) tb="$tb elf32-xgate.lo elf32.lo $elf" ;; diff --git a/bfd/configure.in b/bfd/configure.in index fc17209..a2b01a0 100644 --- a/bfd/configure.in +++ b/bfd/configure.in @@ -832,6 +832,7 @@ do bfd_elf32_v850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; bfd_elf32_v850_rh850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;; bfd_elf32_vax_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;; + bfd_elf32_unicore32_vec) tb="$tb elf32-unicore32.lo elf32.lo $elf" ;; bfd_elf32_xstormy16_vec) tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;; bfd_elf32_xc16x_vec) tb="$tb elf32-xc16x.lo elf32.lo $elf" ;; bfd_elf32_xgate_vec) tb="$tb elf32-xgate.lo elf32.lo $elf" ;; diff --git a/bfd/cpu-unicore32.c b/bfd/cpu-unicore32.c index fe5ce32..9f3f5b8 100644 --- a/bfd/cpu-unicore32.c +++ b/bfd/cpu-unicore32.c @@ -33,11 +33,12 @@ const bfd_arch_info_type bfd_unicore32_arch = "unicore32", /* Arch name. */ "unicore32", /* Printable name. */ 2, /* Unsigned int section alignment 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 next. */ + /* 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 next. */ TRUE, /* The one and only. */ bfd_default_compatible, bfd_default_scan , - 0, + NULL, + NULL }; diff --git a/bfd/elf32-unicore32.c b/bfd/elf32-unicore32.c index a02d05a..9df5c0e 100644 --- a/bfd/elf32-unicore32.c +++ b/bfd/elf32-unicore32.c @@ -11,6 +11,21 @@ #include "libiberty.h" +/* Stub */ +static reloc_howto_type * +elf_unicore32_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code ATTRIBUTE_UNUSED) { + return NULL; +} + +/* Stub */ +static reloc_howto_type * +elf_unicore32_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, + const char *r_name ATTRIBUTE_UNUSED) +{ + return NULL; +} + #define ELF_ARCH bfd_arch_unicore32 #define ELF_MACHINE_CODE EM_UNICORE32 #define ELF_MAXPAGESIZE 0x1000 @@ -18,4 +33,7 @@ #define TARGET_LITTLE_SYM bfd_elf32_unicore32_vec #define TARGET_LITTLE_NAME "elf32-unicore32" +#define bfd_elf32_bfd_reloc_type_lookup elf_unicore32_reloc_type_lookup +#define bfd_elf32_bfd_reloc_name_lookup elf_unicore32_reloc_name_lookup + #include "elf32-target.h" diff --git a/include/elf/common.h b/include/elf/common.h index 4399d02..72a4e85 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -406,7 +406,7 @@ #define EM_ADAPTEVA_EPIPHANY 0x1223 /* Adapteva's Epiphany architecture. */ /* See the above comment before you add a new EM_* value here. */ - +#define EM_UNICORE32 0xed34 /* Values for e_version. */ #define EV_NONE 0 /* Invalid ELF version */ -- 1.8.1.1