[linux-unicore] [PATCH/binutils] Add definitions and stubs for building bfd.

  • From: LIU Zhiyou <liuzhiyou.cs@xxxxxxxxx>
  • To: gxt@xxxxxxxxxxxxxxx, linux-unicore@xxxxxxxxxxxxx
  • Date: Sat, 19 Jan 2013 18:25:09 +0800

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


Other related posts: