--- binutils-2.19.1.orig/gold/gold.h 2008-07-25 00:45:50.000000000 +0300 +++ binutils-2.19.1.orig/gold/gold.h 2009-08-12 17:25:10.000000000 +0300 @@ -27,6 +27,8 @@ #include "ansidecl.h" #include +#include +#include #include #ifndef ENABLE_NLS --- binutils-2.19.1.orig/gold/reduced_debug_output.cc 2008-05-28 23:48:16.000000000 +0300 +++ binutils-2.19.1.orig/gold/reduced_debug_output.cc 2009-08-12 17:25:10.000000000 +0300 @@ -68,19 +68,15 @@ } template -void Insert_into_vector(std::vector* destination, +void insert_into_vector(std::vector* destination, typename elfcpp::Valtype_base::Valtype value) { - union - { - unsigned char buffer[valsize / 8]; - long long align; - } u; + unsigned char buffer[valsize / 8]; if (parameters->target().is_big_endian()) - elfcpp::Swap::writeval(u.buffer, value); + elfcpp::Swap_unaligned::writeval(buffer, value); else - elfcpp::Swap::writeval(u.buffer, value); - destination->insert(destination->end(), u.buffer, u.buffer + valsize / 8); + elfcpp::Swap_unaligned::writeval(buffer, value); + destination->insert(destination->end(), buffer, buffer + valsize / 8); } template @@ -356,15 +352,15 @@ return; } - Insert_into_vector<32>(&this->data_, 0xFFFFFFFF); - Insert_into_vector<32>(&this->data_, 0); - Insert_into_vector<64>( + insert_into_vector<32>(&this->data_, 0xFFFFFFFF); + insert_into_vector<32>(&this->data_, 0); + insert_into_vector<64>( &this->data_, (11 + get_length_as_unsigned_LEB_128(abbreviation_number) + die_end - debug_info)); - Insert_into_vector<16>(&this->data_, version); - Insert_into_vector<64>(&this->data_, 0); - Insert_into_vector<8>(&this->data_, address_size); + insert_into_vector<16>(&this->data_, version); + insert_into_vector<64>(&this->data_, 0); + insert_into_vector<8>(&this->data_, address_size); write_unsigned_LEB_128(&this->data_, abbreviation_number); this->data_.insert(this->data_.end(), debug_info, die_end); } @@ -398,13 +394,13 @@ return; } - Insert_into_vector<32>( + insert_into_vector<32>( &this->data_, (7 + get_length_as_unsigned_LEB_128(abbreviation_number) + die_end - debug_info)); - Insert_into_vector<16>(&this->data_, version); - Insert_into_vector<32>(&this->data_, 0); - Insert_into_vector<8>(&this->data_, address_size); + insert_into_vector<16>(&this->data_, version); + insert_into_vector<32>(&this->data_, 0); + insert_into_vector<8>(&this->data_, address_size); write_unsigned_LEB_128(&this->data_, abbreviation_number); this->data_.insert(this->data_.end(), debug_info, die_end); } --- binutils-2.19.1.orig/gold/version.cc 2008-06-24 09:14:58.000000000 +0300 +++ binutils-2.19.1.orig/gold/version.cc 2009-08-12 17:25:10.000000000 +0300 @@ -23,6 +23,7 @@ #include "gold.h" #include +#include #include "../bfd/bfdver.h"