Mips target in gold - part 3

Sasa Stankovic Sasa.Stankovic@imgtec.com
Thu Jul 4 11:16:00 GMT 2013
Hi all,

This is the third part of the patches that implement Mips target in gold. The attached files contain changes to target-independent code in gold:

1. start.patch
This patch allows a target to define start symbol. Mips start symbol is "__start" instead of "_start".

2. dynsym.patch
This patch allows a target to set dynamic symbol indexes. Mips ABI requires that the order of symbols in .got matches the order of dynamic symbols. The patch adds a call to a target hook at the beginning of the method Symbol_table::set_dynsym_indexes. Mips implementation of the method set_dynsym_indexes is almost identical to Symbol_table::set_dynsym_indexes, except that at the start of the method dynamic symbols are ordered based on their position in the .got.

3. nonvis.patch
This patch adds a method in the class Symbol that sets the non-visibility part of the st_other field. Mips uses st_other's non-visibility part to record different flags about the symbol (whether it has plt stub, whether it is mips16 etc.)

4. dynamic-tag.patch
This patch adds a new kind of Dynamic_entry, whose value is calculated by calling a target defined hook. Mips has several dynamic tags whose value is not known in the method do_finalize_sections, and the existing Dynamic_entries cannot handle the calculation. (for example DT_MIPS_SYMTABNO which is the number of entries in .dynsym section).

5. init-output-data.patch
This patch instantiates the template for Sized_symbol::init_output_data.

6. config.patch
This patch changes configure and Makefiles.

Regards,
Sasa
-------------- next part --------------
A non-text attachment was scrubbed...
Name: start.patch
Type: text/x-patch
Size: 909 bytes
Desc: start.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20130704/f7f0fec6/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dynsym.patch
Type: text/x-patch
Size: 2096 bytes
Desc: dynsym.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20130704/f7f0fec6/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nonvis.patch
Type: text/x-patch
Size: 513 bytes
Desc: nonvis.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20130704/f7f0fec6/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dynamic-tag.patch
Type: text/x-patch
Size: 2170 bytes
Desc: dynamic-tag.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20130704/f7f0fec6/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: init-output-data.patch
Type: text/x-patch
Size: 1101 bytes
Desc: init-output-data.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20130704/f7f0fec6/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config.patch
Type: text/x-patch
Size: 1987 bytes
Desc: config.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20130704/f7f0fec6/attachment-0005.bin>


More information about the Binutils mailing list