aboutsummaryrefslogtreecommitdiff
path: root/lto-plugin
diff options
context:
space:
mode:
authorRafael Avila de Espindola <espindola@google.com>2009-10-08 13:59:32 +0000
committerRafael Espindola <espindola@gcc.gnu.org>2009-10-08 13:59:32 +0000
commitd520c7fb9dc5c6033259ef223cd63dc05b34aee1 (patch)
tree0ba2664c4b1be2ad1cda3f03ee68b336b1cd342e /lto-plugin
parentd72ff618d3477947f78c058e1d9e8249ddb9015b (diff)
downloadgcc-d520c7fb9dc5c6033259ef223cd63dc05b34aee1.zip
gcc-d520c7fb9dc5c6033259ef223cd63dc05b34aee1.tar.gz
gcc-d520c7fb9dc5c6033259ef223cd63dc05b34aee1.tar.bz2
lto-plugin.c (add_input_library): New.
2009-10-08 Rafael Avila de Espindola <espindola@google.com> * lto-plugin.c (add_input_library): New. (all_symbols_read_handler): Use add_input_library for items that start with -l. (process_option): Fit in 80 columns. (onload): Handle LDPT_ADD_INPUT_LIBRARY. 2009-10-08 Rafael Avila de Espindola <espindola@google.com> * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is being statically linked. From-SVN: r152558
Diffstat (limited to 'lto-plugin')
-rw-r--r--lto-plugin/ChangeLog8
-rw-r--r--lto-plugin/lto-plugin.c15
2 files changed, 20 insertions, 3 deletions
diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
index 49f2efb..cabfcca 100644
--- a/lto-plugin/ChangeLog
+++ b/lto-plugin/ChangeLog
@@ -1,3 +1,11 @@
+2009-10-08 Rafael Avila de Espindola <espindola@google.com>
+
+ * lto-plugin.c (add_input_library): New.
+ (all_symbols_read_handler): Use add_input_library for items that
+ start with -l.
+ (process_option): Fit in 80 columns.
+ (onload): Handle LDPT_ADD_INPUT_LIBRARY.
+
2009-10-02 Diego Novillo <dnovillo@google.com>
* Makefile.am (AM_CPPFLAGS): Remove -D_LARGEFILE_SOURCE
diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c
index a0c1a54..71b4961 100644
--- a/lto-plugin/lto-plugin.c
+++ b/lto-plugin/lto-plugin.c
@@ -81,6 +81,7 @@ static ld_plugin_register_all_symbols_read register_all_symbols_read;
static ld_plugin_get_symbols get_symbols;
static ld_plugin_register_cleanup register_cleanup;
static ld_plugin_add_input_file add_input_file;
+static ld_plugin_add_input_library add_input_library;
static struct plugin_file_info *claimed_files = NULL;
static unsigned int num_claimed_files = 0;
@@ -467,7 +468,10 @@ all_symbols_read_handler (void)
unsigned int i;
for (i = 0; i < num_pass_through_items; i++)
{
- add_input_file (pass_through_items[i]);
+ if (strncmp (pass_through_items[i], "-l", 2) == 0)
+ add_input_library (pass_through_items[i] + 2);
+ else
+ add_input_file (pass_through_items[i]);
free (pass_through_items[i]);
pass_through_items[i] = NULL;
}
@@ -607,8 +611,10 @@ process_option (const char *option)
else if (!strncmp (option, "-pass-through=", strlen("-pass-through=")))
{
num_pass_through_items++;
- pass_through_items = realloc (pass_through_items, num_pass_through_items * sizeof (char *));
- pass_through_items[num_pass_through_items - 1] = strdup (option + strlen ("-pass-through="));
+ pass_through_items = realloc (pass_through_items,
+ num_pass_through_items * sizeof (char *));
+ pass_through_items[num_pass_through_items - 1] =
+ strdup (option + strlen ("-pass-through="));
}
else
{
@@ -655,6 +661,9 @@ onload (struct ld_plugin_tv *tv)
case LDPT_ADD_INPUT_FILE:
add_input_file = p->tv_u.tv_add_input_file;
break;
+ case LDPT_ADD_INPUT_LIBRARY:
+ add_input_library = p->tv_u.tv_add_input_library;
+ break;
case LDPT_OPTION:
process_option (p->tv_u.tv_string);
break;