aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authortmsriram <tmsriram@138bc75d-0d04-0410-961f-82ee72b054a4>2012-08-24 19:07:28 +0000
committertmsriram <tmsriram@138bc75d-0d04-0410-961f-82ee72b054a4>2012-08-24 19:07:28 +0000
commitec4151f205c86a7533a69474752661f5b402c36b (patch)
tree8598c3bb24fb928c62c9c3f23058dfa47728fd24 /include
parent6395f98e518629ec25c36a680a3ec080590fa949 (diff)
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/ChangeLog10
-rw-r--r--include/plugin-api.h33
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;
};