Merge from gcc repository.
authorIan Lance Taylor <ian@airs.com>
Tue, 6 Oct 2009 20:14:06 +0000 (20:14 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 6 Oct 2009 20:14:06 +0000 (20:14 +0000)
include/ChangeLog
include/plugin-api.h

index 8e3f70d5ecd21a7a2de7166e022284cf3ac375f2..cbae66307f3dff23945b39ab6d572d8d76b6c9ce 100644 (file)
@@ -1,3 +1,19 @@
+2009-10-05   Rafael Espindola  <espindola@google.com>
+
+       * plugin-api.h (ld_plugin_status): Add LDPS_BAD_HANDLE.
+       (ld_plugin_get_input_file): New.
+       (ld_plugin_release_input_file): New.
+       (ld_plugin_add_input_library): New.
+       (ld_plugin_message): Mark format const.
+       (ld_plugin_level): Add LDPT_GET_INPUT_FILE, LDPT_RELEASE_INPUT_FILE and
+       LDPT_ADD_INPUT_LIBRARY.
+       (ld_plugin_tv): Add tv_get_input_file, tv_release_input_file and
+       tv_add_input_library.
+
+2009-10-04  Jerry Quinn  <jlquinn@optonline.net>
+
+       * plugin-api.h: Fix compile.
+
 2009-09-29  Jason Merrill  <jason@redhat.com>
 
        * demangle.h (enum demangle_component_type): Add
index f536d57d751f5bb98794b4d121f2da38539e574e..530f3f448737f3aa1dec68e542da6ad5e8a02184 100644 (file)
@@ -1,6 +1,6 @@
 /* plugin-api.h -- External linker plugin API.  */
 
-/* Copyright 2008 Free Software Foundation, Inc.
+/* Copyright 2009 Free Software Foundation, Inc.
    Written by Cary Coutant <ccoutant@google.com>.
 
    This file is part of binutils.
@@ -111,13 +111,34 @@ enum ld_plugin_symbol_visibility
 enum ld_plugin_symbol_resolution
 {
   LDPR_UNKNOWN = 0,
+
+  /* Symbol is still undefined at this point.  */
   LDPR_UNDEF,
+
+  /* This is the prevailing definition of the symbol, with references from
+     regular object code.  */
   LDPR_PREVAILING_DEF,
+
+  /* This is the prevailing definition of the symbol, with no
+     references from regular objects.  It is only referenced from IR
+     code.  */
   LDPR_PREVAILING_DEF_IRONLY,
+
+  /* This definition was pre-empted by a definition in a regular
+     object file.  */
   LDPR_PREEMPTED_REG,
+
+  /* This definition was pre-empted by a definition in another IR file.  */
   LDPR_PREEMPTED_IR,
+
+  /* This symbol was resolved by a definition in another IR file.  */
   LDPR_RESOLVED_IR,
+
+  /* This symbol was resolved by a definition in a regular object
+     linked into the main executable.  */
   LDPR_RESOLVED_EXEC,
+
+  /* This symbol was resolved by a definition in a shared object.  */
   LDPR_RESOLVED_DYN
 };
 
@@ -193,6 +214,12 @@ typedef
 enum ld_plugin_status
 (*ld_plugin_add_input_file) (char *pathname);
 
+/* The linker's interface for adding a library that should be searched.  */
+
+typedef
+enum ld_plugin_status
+(*ld_plugin_add_input_library) (char *pathname);
+
 /* The linker's interface for issuing a warning or error message.  */
 
 typedef
@@ -224,7 +251,8 @@ enum ld_plugin_tag
   LDPT_ADD_INPUT_FILE,
   LDPT_MESSAGE,
   LDPT_GET_INPUT_FILE,
-  LDPT_RELEASE_INPUT_FILE
+  LDPT_RELEASE_INPUT_FILE,
+  LDPT_ADD_INPUT_LIBRARY
 };
 
 /* The plugin transfer vector.  */
@@ -245,6 +273,7 @@ struct ld_plugin_tv
     ld_plugin_message tv_message;
     ld_plugin_get_input_file tv_get_input_file;
     ld_plugin_release_input_file tv_release_input_file;
+    ld_plugin_add_input_library tv_add_input_library;
   } tv_u;
 };