Hi Ian, This patch fixes a problem exposed by bootstrapping gcc. libjava contains objects with unevenly sized merge sections, whose sections sizes are not multiples of their entsizes. Output_merge_data::do_add_input_section cannot handle these sections and returns false but the result is ignored by Output_section::add_merge_input_section, which updates the merge section map incorrectly. Unevenly sized merge sections also cause another problem Output_merge_data::set_final_data_size because the method assumes the data member Output_merge_data::p_ is always not NULL. However, that condition is possible is an Output_merge_data is empty due to unevenly sized input sections. -Doug 2010-04-08 Doug Kwan * merge.cc (Output_merge_data::set_final_data_size): Handle empty Output_merge_data. * output.cc (Output_section::add_merge_input_section): Simplify code and return status of Output_merge_base::add_input_section. Update merge section map only if Output_merge_base::add_input_section returns true.