Plugin API to get the list of wrap symbols.
authorSriraman Tallam <tmsriram@google.com>
Wed, 2 May 2018 00:53:48 +0000 (00:53 +0000)
committerSriraman Tallam <tmsriram@gcc.gnu.org>
Wed, 2 May 2018 00:53:48 +0000 (00:53 +0000)
This was approved for the binutils gold linker.
2018-05-01  Sriraman Tallam  <tmsriram@google.com>

* plugin-api.h: Add plugin API to get the list of wrap
symbols.

From-SVN: r259820

include/ChangeLog
include/plugin-api.h

index 73d6b64398e5d7d35c1112a14811c39f8708466c..f29ce63cfc99e818ac345e723a4eff3ba82d9412 100644 (file)
@@ -1,3 +1,8 @@
+2018-05-01  Sriraman Tallam  <tmsriram@google.com>
+
+       * plugin-api.h: Add plugin API to get the list of wrap
+       symbols.
+
 2018-02-09  Alexandre Oliva <aoliva@redhat.com>
 
        * dwarf2.def (DW_AT_GNU_entry_view): New.
index 03e21f4a0c445e881918a71c07b538e3a3fa1bd2..24cd695bf5c02351644e54699eede65cf1781363 100644 (file)
@@ -378,6 +378,14 @@ typedef
 enum ld_plugin_status
 (*ld_plugin_register_new_input) (ld_plugin_new_input_handler handler);
 
+/* The linker's interface for getting the list of wrapped symbols using the
+   --wrap option. This sets *NUM_SYMBOLS to number of wrapped symbols and
+   *WRAP_SYMBOL_LIST to the list of wrapped symbols. */
+
+typedef
+enum ld_plugin_status
+(*ld_plugin_get_wrap_symbols) (uint64_t *num_symbols,
+                               const char ***wrap_symbol_list);
 
 enum ld_plugin_level
 {
@@ -422,7 +430,8 @@ enum ld_plugin_tag
   LDPT_GET_SYMBOLS_V3 = 28,
   LDPT_GET_INPUT_SECTION_ALIGNMENT = 29,
   LDPT_GET_INPUT_SECTION_SIZE = 30,
-  LDPT_REGISTER_NEW_INPUT_HOOK = 31
+  LDPT_REGISTER_NEW_INPUT_HOOK = 31,
+  LDPT_GET_WRAP_SYMBOLS = 32
 };
 
 /* The plugin transfer vector.  */
@@ -457,6 +466,7 @@ struct ld_plugin_tv
     ld_plugin_get_input_section_alignment tv_get_input_section_alignment;
     ld_plugin_get_input_section_size tv_get_input_section_size;
     ld_plugin_register_new_input tv_register_new_input;
+    ld_plugin_get_wrap_symbols tv_get_wrap_symbols;
   } tv_u;
 };