X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gold%2Flayout.h;h=8b349cc0a4bda2675a912233c1528756a2b36d31;hb=36fc76aebb7315571094d66b35e13d69d512fbe2;hp=4c54e005554eac3de42e882c3ca485f77635c764;hpb=16649710df23ad9038e0057035882a92e783f7e6;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/layout.h b/gold/layout.h index 4c54e00555..8b349cc0a4 100644 --- a/gold/layout.h +++ b/gold/layout.h @@ -10,6 +10,7 @@ #include "workqueue.h" #include "object.h" +#include "dynobj.h" #include "stringpool.h" namespace gold @@ -201,7 +202,10 @@ class Layout // Create the dynamic symbol table. void - create_dynamic_symtab(const Target*, Symbol_table*); + create_dynamic_symtab(const Target*, Symbol_table*, Output_section** pdynstr, + unsigned int* plocal_dynamic_count, + std::vector* pdynamic_symbols, + Versions* versions); // Finish the .dynamic section and PT_DYNAMIC segment. void @@ -211,6 +215,21 @@ class Layout void create_interp(const Target* target); + // Create the version sections. + void + create_version_sections(const Target*, const Versions*, + unsigned int local_symcount, + const std::vector& dynamic_symbols, + const Output_section* dynstr); + + template + void + sized_create_version_sections(const Versions* versions, + unsigned int local_symcount, + const std::vector& dynamic_symbols, + const Output_section* dynstr + ACCEPT_SIZE_ENDIAN); + // Return whether to include this section in the link. template bool @@ -242,7 +261,7 @@ class Layout off_t set_segment_offsets(const Target*, Output_segment*, unsigned int* pshndx); - // Set the final file offsets and section indices of all the + // Set the final file offsets and section indexes of all the // sections not associated with a segment. off_t set_section_offsets(off_t, unsigned int *pshndx);