In the event that pointer sizes aren't powers of two, choose a more
suitable alignment than (unsigned)(-1), which results in HUGE file
sizes. Ok?
Index: gcc/lto/lto-object.c
===================================================================
--- gcc/lto/lto-object.c (revision 216287)
+++ gcc/lto/lto-object.c (working copy)
@@ -335,13 +335,13 @@ lto_obj_begin_section (const char *name)
lo = (struct lto_simple_object *) current_out_file;
gcc_assert (lo != NULL
&& lo->sobj_r == NULL
&& lo->sobj_w != NULL
&& lo->section == NULL);
- align = exact_log2 (POINTER_SIZE / BITS_PER_UNIT);
+ align = ceil_log2 (POINTER_SIZE_UNITS);
lo->section = simple_object_write_create_section (lo->sobj_w, name, align,
&errmsg, &err);
if (lo->section == NULL)
{
if (err == 0)
fatal_error ("%s", errmsg);