Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: binutils/gold/copy-relocs.cc

Issue 3018030: [binutils] Bump binutils to 2.20.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « binutils/gold/common.cc ('k') | binutils/gold/defstd.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // copy-relocs.cc -- handle COPY relocations for gold. 1 // copy-relocs.cc -- handle COPY relocations for gold.
2 2
3 // Copyright 2006, 2007, 2008 Free Software Foundation, Inc. 3 // Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
4 // Written by Ian Lance Taylor <iant@google.com>. 4 // Written by Ian Lance Taylor <iant@google.com>.
5 5
6 // This file is part of gold. 6 // This file is part of gold.
7 7
8 // This program is free software; you can redistribute it and/or modify 8 // This program is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by 9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 3 of the License, or 10 // the Free Software Foundation; either version 3 of the License, or
11 // (at your option) any later version. 11 // (at your option) any later version.
12 12
13 // This program is distributed in the hope that it will be useful, 13 // This program is distributed in the hope that it will be useful,
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 bool is_ordinary; 125 bool is_ordinary;
126 unsigned int shndx = sym->shndx(&is_ordinary); 126 unsigned int shndx = sym->shndx(&is_ordinary);
127 gold_assert(is_ordinary); 127 gold_assert(is_ordinary);
128 typename elfcpp::Elf_types<size>::Elf_WXword addralign = 128 typename elfcpp::Elf_types<size>::Elf_WXword addralign =
129 sym->object()->section_addralign(shndx); 129 sym->object()->section_addralign(shndx);
130 130
131 typename Sized_symbol<size>::Value_type value = sym->value(); 131 typename Sized_symbol<size>::Value_type value = sym->value();
132 while ((value & (addralign - 1)) != 0) 132 while ((value & (addralign - 1)) != 0)
133 addralign >>= 1; 133 addralign >>= 1;
134 134
135 // Mark the dynamic object as needed for the --as-needed option.
136 sym->object()->set_is_needed();
137
135 if (this->dynbss_ == NULL) 138 if (this->dynbss_ == NULL)
136 { 139 {
137 this->dynbss_ = new Output_data_space(addralign, "** dynbss"); 140 this->dynbss_ = new Output_data_space(addralign, "** dynbss");
138 layout->add_output_section_data(".bss", 141 layout->add_output_section_data(".bss",
139 elfcpp::SHT_NOBITS, 142 elfcpp::SHT_NOBITS,
140 elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE, 143 elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE,
141 » » » » this->dynbss_); 144 » » » » this->dynbss_, false);
142 } 145 }
143 146
144 Output_data_space* dynbss = this->dynbss_; 147 Output_data_space* dynbss = this->dynbss_;
145 148
146 if (addralign > dynbss->addralign()) 149 if (addralign > dynbss->addralign())
147 dynbss->set_space_alignment(addralign); 150 dynbss->set_space_alignment(addralign);
148 151
149 section_size_type dynbss_size = 152 section_size_type dynbss_size =
150 convert_to_section_size_type(dynbss->current_data_size()); 153 convert_to_section_size_type(dynbss->current_data_size());
151 dynbss_size = align_address(dynbss_size, addralign); 154 dynbss_size = align_address(dynbss_size, addralign);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 238
236 #ifdef HAVE_TARGET_64_BIG 239 #ifdef HAVE_TARGET_64_BIG
237 template 240 template
238 class Copy_relocs<elfcpp::SHT_REL, 64, true>; 241 class Copy_relocs<elfcpp::SHT_REL, 64, true>;
239 242
240 template 243 template
241 class Copy_relocs<elfcpp::SHT_RELA, 64, true>; 244 class Copy_relocs<elfcpp::SHT_RELA, 64, true>;
242 #endif 245 #endif
243 246
244 } // End namespace gold. 247 } // End namespace gold.
OLDNEW
« no previous file with comments | « binutils/gold/common.cc ('k') | binutils/gold/defstd.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698