summaryrefslogtreecommitdiffstats
path: root/binutils-2.25/gold/binary.cc
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.25/gold/binary.cc')
-rw-r--r--binutils-2.25/gold/binary.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/binutils-2.25/gold/binary.cc b/binutils-2.25/gold/binary.cc
index 4dab52cd..12ca296e 100644
--- a/binutils-2.25/gold/binary.cc
+++ b/binutils-2.25/gold/binary.cc
@@ -1,6 +1,6 @@
// binary.cc -- binary input files for gold
-// Copyright (C) 2008-2014 Free Software Foundation, Inc.
+// Copyright (C) 2008-2015 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
@@ -235,12 +235,12 @@ Binary_to_elf::sized_convert(const Task* task)
pout += aligned_filesize - filesize;
}
- this->write_symbol<size, big_endian>("", &strtab, 0, 0, &pout);
- this->write_symbol<size, big_endian>(start_symbol_name, &strtab, 0, 1,
- &pout);
- this->write_symbol<size, big_endian>(end_symbol_name, &strtab, filesize, 1,
- &pout);
- this->write_symbol<size, big_endian>(size_symbol_name, &strtab, filesize,
+ this->write_symbol<size, big_endian>("", &strtab, 0, 0, 0, &pout);
+ this->write_symbol<size, big_endian>(start_symbol_name, &strtab, 0, filesize,
+ 1, &pout);
+ this->write_symbol<size, big_endian>(end_symbol_name, &strtab, filesize, 0,
+ 1, &pout);
+ this->write_symbol<size, big_endian>(size_symbol_name, &strtab, filesize, 0,
elfcpp::SHN_ABS, &pout);
strtab.write_to_buffer(pout, strtab.get_strtab_size());
@@ -343,6 +343,7 @@ Binary_to_elf::write_symbol(
const std::string& name,
const Stringpool* strtab,
section_size_type value,
+ typename elfcpp::Elf_types<32>::Elf_WXword st_size,
unsigned int shndx,
unsigned char** ppout)
{
@@ -351,7 +352,7 @@ Binary_to_elf::write_symbol(
elfcpp::Sym_write<size, big_endian> osym(pout);
osym.put_st_name(name.empty() ? 0 : strtab->get_offset(name.c_str()));
osym.put_st_value(value);
- osym.put_st_size(0);
+ osym.put_st_size(st_size);
osym.put_st_info(name.empty() ? elfcpp::STB_LOCAL : elfcpp::STB_GLOBAL,
elfcpp::STT_NOTYPE);
osym.put_st_other(elfcpp::STV_DEFAULT, 0);