diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
index a8f7461298c2b4c6f59eeee1d5223429629ac27c..e3e965371c44b6aa8e21f337ec7a53699e5d2494 100644
--- a/lto-plugin/ChangeLog
+++ b/lto-plugin/ChangeLog
@@ -1,4 +1,9 @@
-2010-07-10   Andi Kleen <ak@linux.intel.com>
+2010-07-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/45042
+	* lto-plugin.c (translate): Cast to unsigned long.
+
+2010-07-23   Andi Kleen <ak@linux.intel.com>
 
 	PR lto/44992
 	* lto-plugin.c (sym_aux): Add.
diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c
index 314759bc4621d6913ce0aa146f25973c175dfc69..f2ca90ccf7435ff8f0b58c47c48c110ad6ecdf33 100644
--- a/lto-plugin/lto-plugin.c
+++ b/lto-plugin/lto-plugin.c
@@ -212,7 +212,8 @@ translate (Elf_Data *symtab, struct plugin_symtab *out)
       data = parse_table_entry (data, &syms[n], &aux[n]);
     }
 
-  fprintf (stderr, "n = %d len = %d end-data=%lu\n", n, len, end-data);
+  fprintf (stderr, "n = %d len = %d end-data=%lu\n", n, len,
+	   (unsigned long) (end - data));
   assert(n < len);
 
   out->nsyms = n;