]> gcc.gnu.org Git - gcc.git/commitdiff
lto-plugin.c (add_input_library): New.
authorRafael Avila de Espindola <espindola@google.com>
Thu, 8 Oct 2009 13:59:32 +0000 (13:59 +0000)
committerRafael Espindola <espindola@gcc.gnu.org>
Thu, 8 Oct 2009 13:59:32 +0000 (13:59 +0000)
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

gcc/ChangeLog
gcc/gcc.c
lto-plugin/ChangeLog
lto-plugin/lto-plugin.c

index 12bebb0b1e4c66f55ef2685d5b13d24b6a3b55fd..8f0ba61031f567d408b80a4167d93b58fd450009 100644 (file)
@@ -1,3 +1,8 @@
+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.
+
 2009-10-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.
index d94462d9ac59eead720bf9749374bcf9ff982f5b..1891adb45bc63f062e7975745104f850423aa4c3 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -775,6 +775,7 @@ proper position among the other output files.  */
     -plugin-opt=%(lto_wrapper) \
     -plugin-opt=%(lto_gcc) \
     %{static|static-libgcc:-plugin-opt=-pass-through=%(lto_libgcc)}    \
+    %{static:-plugin-opt=-pass-through=-lc}    \
     %{O*:-plugin-opt=-O%*} \
     %{w:-plugin-opt=-w} \
     %{f*:-plugin-opt=-f%*} \
index 49f2efb40c5a1aca614bd68cabe9771ce3fb0912..cabfcca9f2ee8661ff8abde99c35d52d918920a7 100644 (file)
@@ -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
index a0c1a54e0e2a7849370088bfe2e6fa8b8c4579c1..71b4961496cc20051f4a155c93480db0a79d3809 100644 (file)
@@ -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;
This page took 0.119275 seconds and 5 git commands to generate.