This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

add new target to Binutils, why nobody reply?


Hello all,

I ported Binutils to a 32 bit chip named Score and want to add it to GNU 
official.
I've done the whole process of FSF ASSIGNMENT and already placed the patch 
on Binutils maillist.
But nobody reply till now.  GCC patch for Score has been approved by GCC 
SC.
Anybody can tell me why or what should i do?  You are appreciate.


__________________

Hello Maintainers,

Here is a patch to add target Score to GNU Binutils.
I volunteer to become the Score port maintainer.
Please handle it.

ChangeLog:
1. GAS part 
1.1 BINUTILS_DIR/config.sub
        score|score-*)
                basic_machine=score-linux
                os=-elf
                ;;

1.2 add files to BINUTILS_DIR/gas/config
    tc-score.c
    tc-score.h
    score-datadep.h
    score-inst.h
 
1.3 gas/Makefile.in
1.3.1 CPU_TYPES = score \
1.3.2 TARGET_CPU_CFILES = config/tc-score.c \
1.3.3 TARGET_CPU_HFILES = config/tc-score.h \
1.3.4
DEPTC_score_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h  \
  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
  $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-score.h 
\
  $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h  \
  $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
  dwarf2dbg.h dw2gencfi.h $(INCDIR)/elf/dwarf2.h
  $(srcdir)/config/score-inst.h $(srcdir)/config/score-datadep.h
 
1.4 gas/configure.tgt
1.4.1 
      score*)           cpu_type=score endian=big ;;
      score*l)          cpu_type=score endian=little ;;
1.4.2   score-*-elf)                          fmt=elf bfd_gas=yes ;;

2. BFD part
2.1 
2.1.1 add files to BINUTILS_DIR/bfd
      elf32-score.c
      cpu-score.c
2.1.2 add files to BINUTILS_DIR/include/elf
      score.h

2.2 bfd/configure
    bfd_elf32_bigscore_vec)     tb="$tb elf32-score.lo elf32.lo $elf" ;;
    bfd_elf32_littlescore_vec)  tb="$tb elf32-score.lo elf32.lo $elf" ;; 
 
2.3 bfd/Makefile.in
2.3.1 ALL_MACHINES = cpu-score.lo \
2.3.2 ALL_MACHINES_CFILES = cpu-score.c \
2.3.3 BFD32_BACKENDS = elf32-score.lo \
2.3.4 BFD32_BACKENDS_CFILES = elf32-score.c \
2.3.5 SOURCE_HFILES = elf32-score.h
2.3.6 cpu-score.lo: cpu-score.c $(INCDIR)/filenames.h
2.3.7 
elf32-score.lo: elf32-score.c $(INCDIR)/filenames.h \
  elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
  $(INCDIR)/elf/external.h $(INCDIR)/elf/score.h 
$(INCDIR)/elf/reloc-macros.h \
  elf32-score.h elf32-target.h

2.4 bfd/config.bfd
2.4.1 score*)          targ_archs=bfd_score_arch ;;
2.4.2    score*-*-elf*)
           targ_defvec=bfd_elf32_bigscore_vec
           targ_selvecs=bfd_elf32_littlescore_vec
           ;;
 
2.5 bfd/targets.c
2.5.1 extern const bfd_target bfd_elf32_bigscore_vec;
2.5.2 extern const bfd_target bfd_elf32_littlescore_vec;
2.5.3 &bfd_elf32_bigscore_vec,
2.5.4 &bfd_elf32_littlescore_vec, 
 
2.6 bfd/archures.c
2.6.1 .  bfd_arch_score,     {* Sunplus score *} 
2.6.2 extern const bfd_arch_info_type bfd_score_arch;
2.6.3 static const bfd_arch_info_type * const bfd_archures_list[] = 
&bfd_score_arch,

2.7 bfd/bfd-in2.h
/* Score relocations.  */
  /* low 16 bit for ldst.  */
  BFD_RELOC_SCORE_DUMMY1,
  BFD_RELOC_GPREL15,
  BFD_RELOC_SCORE_DUMMY2,
  /* This is a 24-bit reloc with the right 1 bits assumed to be 0.  */
  BFD_RELOC_SCORE_JMP,
  /* This is a 19-bit reloc with the right 1 bits assumed to be 0.  */ 
  BFD_RELOC_SCORE_BRANCH,
  /* This is a 11-bit reloc with the right 1 bits assumed to be 0.  */ 
  BFD_RELOC_SCORE16_JMP,
  /* This is a 8-bit reloc with the right 1 bits assumed to be 0.  */
  BFD_RELOC_SCORE16_BRANCH,

2.8 BINUTILS_DIR/include/elf/common.h
   #define EM_SCORE        135     /* Sunplus Score */


3. LD part
3.1 add files to BINUTILS_DIR/ld/emultempl
    scoreelf.em
    add files to BINUTILS_DIR/ld/emulparams
    scoreelf.sh

3.2 ld/configure.tgt
    score-*-elf)                targ_emul=scoreelf ;;

3.3 ld/Makefile.in
3.3.1 ALL_EMULATIONS = escoreelf.o \
3.3.2
escoreelf.c: $(srcdir)/emulparams/scoreelf.sh \
  $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/scoreelf.em \
  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} scoreelf "$(tdir_scoreelf)"
 
 
4. Opcodes part
4.1 add files to BINUTILS_DIR/opcodes
   score-dis.c score-opc.h 

4.2 opcodes/configure
        bfd_score_arch)         ta="$ta score-dis.lo" ;;

4.3 opcodes/Makefile.in
4.3.1 HFILES = score-opc.h \
4.3.2 CFILES = score-dis.c \
4.3.3 ALL_MACHINES = score-dis.lo \
4.3.4 
score-dis.lo: score-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h score-opc.h \
  $(INCDIR)/bfdlink.h opintl.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h 
\
  $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/score.h 
\
  $(INCDIR)/elf/reloc-macros.h

4.4 opcodes/disassemble.c
4.4.1 #define ARCH_score
4.4.2
#ifdef ARCH_score
    case bfd_arch_score:
      if (bfd_big_endian (abfd))
        disassemble = print_insn_big_score;
      else
        disassemble = print_insn_little_score;
     break;
#endif 
 
4.5 include/dis-asm.h
extern int print_insn_big_score         (bfd_vma, disassemble_info *);
extern int print_insn_little_score      (bfd_vma, disassemble_info *);


5. Binutils part
5.1 binutils/Makefile.in
    readelf.o : $(INCDIR)/elf/score.h

5.2 binutils/readelf.c
    add score specific code


6. Testsuite part
6.1 gas/testsuite/gas/elf/elf.exp
    if {[istarget "score-*-*"]} then {
        set target_machine -score
    }
    add file section2.e-score to gas/testsuite/gas/elf/
6.2 ld/testsuite/ld-srec/srec.exp 
    setup_xfail "score-*-*"
6.3 ld/testsuite/ld-elf/merge.d
     "score-*-*"
6.4 ld/testsuite/ld-elfcomm/elfcomm.exp
    if { [istarget score-*-*] } {
    untested $test1w1
    untested $test1w2
    untested $test1c1
    untested $test1c2
    return
    }


Best regards
                     Ligang

Attachment: Score_Binutils_patch.tar.bz2
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]