This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: gold and 2.20 release
Matthias Klose <doko@ubuntu.com> writes:
> On 16.10.2009 08:02, Ian Lance Taylor wrote:
>> Tristan Gingold<gingold@adacore.com> writes:
>>> if you want to copy gold+elfcpp onto the branch, please do it asap as
>>> I plan to do the release
>>> tomorrow.
>>
>>
>> This is done now. Sorry for the delay--I was in a meeting all day.
>
> builds ok, as long as you don't configure with --enable-plugins, which
> requires the following chunk from the trunk.
I synced plugin-api.h from trunk to the 2.20 branch. At least it will
be in 2.20.1.
I copied the ChangeLog entries from trunk, although they are now
coming from gcc and, due to the timing of when changes went in, don't
really describe this change.
Ian
Index: plugin-api.h
===================================================================
RCS file: /cvs/src/src/include/plugin-api.h,v
retrieving revision 1.5
diff -p -u -r1.5 plugin-api.h
--- plugin-api.h 15 Jan 2009 01:28:14 -0000 1.5
+++ plugin-api.h 16 Oct 2009 14:08:17 -0000
@@ -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 *libname);
+
/* 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;
};