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]

Initial MIPS patch for Gold - version 2


Hi Ian,
Please find attached patches for Mips implementation of Gold. This is
still initial version that is doing linking of simple file. I
implemented changes you suggested in your previous mails. Patch is
synchronized with GNU Binutils 2.22.51.20111130.

There are five patch files:
* mips.cc.patch - contains src/gold/mips.cc
* mips.h.patch - contains src/elfcpp/mips.h
* utils.h.patch - contains src/gold/utils.h
* elfcpp.patch - contains changes of all files in src/elfcpp folder
  (except mips.h)
* gold.patch - contains changes of all files in src/gold folder
  (except mips.cc and utils.h)


Thanks in advance for your review,
Aleksandar



Changes in this version:
* mips.h: New file

* mips.cc: New file

* utils.h: New file that contains utilities for manipulating integers of
up to 32-bits.

* arm.cc (namespace utils): Removed common code to separate file (utils.h).
(utils::sign_extend): Removed.
(utils::has_overflow): Likewise.
(utils::has_signed_unsigned_overflow): Likewise.
(utils::bit_select): Likewise.

* layout.cc (Layout::segment_precedes): Fixed order of MIPS specific
segments.

* layout.h (Layout::segment_list): Returns segment list.
(Layout::segment_list): New function.

* output.cc (Output_data_dynamic::Dynamic_entry::write): Added code for
target specific dynamic tags.

* output.h (Output_data_dynamic::add_target_specific): Added function
for adding target specific dynamic tag.
(Output_data_dynamic::add_target_specific): New method.
(Output_data_dynamic::Dynamic_entry): Add support for target specific
dynamic table entries.
(DYNAMIC_TARGET): New enum for target specific dynamic tags.

* reloc.cc (Sized_relobj_file<size, big_endian>::write_sections):
Special handling of MIPS .reginfo section.

* symtab.cc (Symbol_table::set_dynsym_indexes): MIPS needs dynamic
symbol table to be sorted in a way that first come local, then global
symbols without got entry and at the end global symbols with got entry.

* symtab.h (Symbol_table::global_got_index_): New data member.
(Symbol_table::global_got_index): New function.

* Makefile.am ($HFILES): Added utils.h
($TARGETSOURCES): Added mips.cc
($ALL_TARGETOBJS): Added mips.$(OBJEXT)

* Makefile.in: Regenerated.

* configure.tgt: Added MIPS32 target.

* elfcpp.h (SHT_MIPS_REGINFO): New enums for processor-specific flags.
(SHF_MIPS_GPREL): Likewise.
(PT_MIPS_REGINFO, PT_MIPS_RTPROC, PT_MIPS_OPTIONS): Likewise.
(DT_MIPS_RLD_VERSION, DT_MIPS_TIME_STAMP, DT_MIPS_ICHECKSUM,
DT_MIPS_IVERSION, DT_MIPS_FLAGS, DT_MIPS_BASE_ADDRESS, DT_MIPS_MSYM,
DT_MIPS_CONFLICT, DT_MIPS_LIBLIST, DT_MIPS_LOCAL_GOTNO,
DT_MIPS_CONFLICTNO, DT_MIPS_LIBLISTNO, DT_MIPS_SYMTABNO,
DT_MIPS_UNREFEXTNO, DT_MIPS_GOTSYM, DT_MIPS_HIPAGENO, DT_MIPS_RLD_MAP,
DT_MIPS_DELTA_CLASS, DT_MIPS_DELTA_CLASS_NO, DT_MIPS_DELTA_INSTANCE,
DT_MIPS_DELTA_INSTANCE_NO, DT_MIPS_DELTA_RELOC, DT_MIPS_DELTA_RELOC_NO,
DT_MIPS_DELTA_SYM, DT_MIPS_DELTA_SYM_NO, DT_MIPS_DELTA_CLASSSYM,
DT_MIPS_DELTA_CLASSSYM_NO, DT_MIPS_CXX_FLAGS, DT_MIPS_PIXIE_INIT,
DT_MIPS_SYMBOL_LIB, DT_MIPS_LOCALPAGE_GOTIDX, DT_MIPS_LOCAL_GOTIDX,
DT_MIPS_HIDDEN_GOTIDX, DT_MIPS_PROTECTED_GOTIDX, DT_MIPS_OPTIONS,
DT_MIPS_INTERFACE, DT_MIPS_DYNSTR_ALIGN, DT_MIPS_INTERFACE_SIZE,
DT_MIPS_RLD_TEXT_RESOLVE_ADDR, DT_MIPS_PERF_SUFFIX,
DT_MIPS_COMPACT_SIZE, DT_MIPS_GP_VALUE, DT_MIPS_AUX_DYNAMIC,
DT_MIPS_PLTGOT, DT_MIPS_RWPLT): Likewise.


Attachment: mips_gold.tar.gz
Description: GNU Zip compressed data


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