diff options
author | tmsriram <tmsriram@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-24 19:07:28 +0000 |
---|---|---|
committer | tmsriram <tmsriram@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-24 19:07:28 +0000 |
commit | ec4151f205c86a7533a69474752661f5b402c36b (patch) | |
tree | 8598c3bb24fb928c62c9c3f23058dfa47728fd24 /include | |
parent | 6395f98e518629ec25c36a680a3ec080590fa949 (diff) | |
download | gcc-ec4151f205c86a7533a69474752661f5b402c36b.tar.gz |
Sync plugin-api.h with gold patch : http://sourceware.org/ml/binutils/2012-08/msg00447.html
* plugin-api.h (ld_plugin_allow_unique_segment_for_sections):
New interface.
(ld_plugin_unique_segment_for_sections): New interface.
(LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val.
(LDPT_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val.
(tv_allow_unique_segment_for_sections): New member.
(tv_unique_segment_for_sections): New member.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190654 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 10 | ||||
-rw-r--r-- | include/plugin-api.h | 33 |
2 files changed, 42 insertions, 1 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 57f812de6c3..1de3dca8402 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,13 @@ +2012-08-24 Sriraman Tallam <tmsriram@google.com> + + * plugin-api.h (ld_plugin_allow_unique_segment_for_sections): + New interface. + (ld_plugin_unique_segment_for_sections): New interface. + (LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val. + (LDPT_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val. + (tv_allow_unique_segment_for_sections): New member. + (tv_unique_segment_for_sections): New member. + 2012-07-13 Doug Evans <dje@google.com> * filenames.h: #include "hashtab.h". diff --git a/include/plugin-api.h b/include/plugin-api.h index 3220142ddaa..af60419a96a 100644 --- a/include/plugin-api.h +++ b/include/plugin-api.h @@ -318,6 +318,33 @@ typedef enum ld_plugin_status (*ld_plugin_allow_section_ordering) (void); +/* The linker's interface for specifying that a subset of sections is + to be mapped to a unique segment. If the plugin wants to call + unique_segment_for_sections, it must call this function from a + claim_file_handler or when it is first loaded. */ + +typedef +enum ld_plugin_status +(*ld_plugin_allow_unique_segment_for_sections) (void); + +/* The linker's interface for specifying that a specific set of sections + must be mapped to a unique segment. ELF segments do not have names + and the NAME is used as the name of the newly created output section + that is then placed in the unique PT_LOAD segment. FLAGS is used to + specify if any additional segment flags need to be set. For instance, + a specific segment flag can be set to identify this segment. Unsetting + segment flags that would be set by default is not possible. The + parameter SEGMENT_ALIGNMENT when non-zero will override the default. */ + +typedef +enum ld_plugin_status +(*ld_plugin_unique_segment_for_sections) ( + const char* segment_name, + uint64_t segment_flags, + uint64_t segment_alignment, + const struct ld_plugin_section * section_list, + unsigned int num_sections); + enum ld_plugin_level { LDPL_INFO, @@ -355,7 +382,9 @@ enum ld_plugin_tag LDPT_GET_INPUT_SECTION_CONTENTS, LDPT_UPDATE_SECTION_ORDER, LDPT_ALLOW_SECTION_ORDERING, - LDPT_GET_SYMBOLS_V2 + LDPT_GET_SYMBOLS_V2, + LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS, + LDPT_UNIQUE_SEGMENT_FOR_SECTIONS }; /* The plugin transfer vector. */ @@ -385,6 +414,8 @@ struct ld_plugin_tv ld_plugin_get_input_section_contents tv_get_input_section_contents; ld_plugin_update_section_order tv_update_section_order; ld_plugin_allow_section_ordering tv_allow_section_ordering; + ld_plugin_allow_unique_segment_for_sections tv_allow_unique_segment_for_sections; + ld_plugin_unique_segment_for_sections tv_unique_segment_for_sections; } tv_u; }; |