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

Side by Side Diff: binutils/gold/layout.h

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/i386.cc ('k') | binutils/gold/layout.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 // layout.h -- lay out output file sections for gold -*- C++ -*- 1 // layout.h -- lay out output file sections for gold -*- C++ -*-
2 2
3 // Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc. 3 // Copyright 2006, 2007, 2008, 2009 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
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 off_t* offset); 353 off_t* offset);
354 354
355 // Handle a GNU stack note. This is called once per input object 355 // Handle a GNU stack note. This is called once per input object
356 // file. SEEN_GNU_STACK is true if the object file has a 356 // file. SEEN_GNU_STACK is true if the object file has a
357 // .note.GNU-stack section. GNU_STACK_FLAGS is the section flags 357 // .note.GNU-stack section. GNU_STACK_FLAGS is the section flags
358 // from that section if there was one. 358 // from that section if there was one.
359 void 359 void
360 layout_gnu_stack(bool seen_gnu_stack, uint64_t gnu_stack_flags); 360 layout_gnu_stack(bool seen_gnu_stack, uint64_t gnu_stack_flags);
361 361
362 // Add an Output_section_data to the layout. This is used for 362 // Add an Output_section_data to the layout. This is used for
363 // special sections like the GOT section. 363 // special sections like the GOT section. IS_DYNAMIC_LINKER_SECTION
364 // is true for sections which are used by the dynamic linker, such
365 // as dynamic reloc sections.
364 Output_section* 366 Output_section*
365 add_output_section_data(const char* name, elfcpp::Elf_Word type, 367 add_output_section_data(const char* name, elfcpp::Elf_Word type,
366 elfcpp::Elf_Xword flags, 368 elfcpp::Elf_Xword flags,
367 » » » Output_section_data*); 369 » » » Output_section_data*, bool is_dynamic_linker_section);
368 370
369 // Create dynamic sections if necessary. 371 // Create dynamic sections if necessary.
370 void 372 void
371 create_initial_dynamic_sections(Symbol_table*); 373 create_initial_dynamic_sections(Symbol_table*);
372 374
373 // Define __start and __stop symbols for output sections. 375 // Define __start and __stop symbols for output sections.
374 void 376 void
375 define_section_symbols(Symbol_table*); 377 define_section_symbols(Symbol_table*);
376 378
377 // Create automatic note sections. 379 // Create automatic note sections.
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 static const char* 740 static const char*
739 output_section_name(const char* name, size_t* plen); 741 output_section_name(const char* name, size_t* plen);
740 742
741 // Return the number of allocated output sections. 743 // Return the number of allocated output sections.
742 size_t 744 size_t
743 allocated_output_section_count() const; 745 allocated_output_section_count() const;
744 746
745 // Return the output section for NAME, TYPE and FLAGS. 747 // Return the output section for NAME, TYPE and FLAGS.
746 Output_section* 748 Output_section*
747 get_output_section(const char* name, Stringpool::Key name_key, 749 get_output_section(const char* name, Stringpool::Key name_key,
748 » » elfcpp::Elf_Word type, elfcpp::Elf_Xword flags); 750 » » elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
751 » » bool is_interp, bool is_dynamic_linker_section);
749 752
750 // Choose the output section for NAME in RELOBJ. 753 // Choose the output section for NAME in RELOBJ.
751 Output_section* 754 Output_section*
752 choose_output_section(const Relobj* relobj, const char* name, 755 choose_output_section(const Relobj* relobj, const char* name,
753 elfcpp::Elf_Word type, elfcpp::Elf_Xword flags, 756 elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
754 » » » bool is_input_section); 757 » » » bool is_input_section, bool is_interp,
758 » » » bool is_dynamic_linker_section);
755 759
756 // Create a new Output_section. 760 // Create a new Output_section.
757 Output_section* 761 Output_section*
758 make_output_section(const char* name, elfcpp::Elf_Word type, 762 make_output_section(const char* name, elfcpp::Elf_Word type,
759 » » elfcpp::Elf_Xword flags); 763 » » elfcpp::Elf_Xword flags, bool is_interp,
764 » » bool is_dynamic_linker_section);
760 765
761 // Attach a section to a segment. 766 // Attach a section to a segment.
762 void 767 void
763 attach_section_to_segment(Output_section*); 768 attach_section_to_segment(Output_section*);
764 769
765 // Attach an allocated section to a segment. 770 // Attach an allocated section to a segment.
766 void 771 void
767 attach_allocated_section_to_segment(Output_section*); 772 attach_allocated_section_to_segment(Output_section*);
768 773
769 // Set the final file offsets of all the segments. 774 // Set the final file offsets of all the segments.
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
1170 align_address(uint64_t address, uint64_t addralign) 1175 align_address(uint64_t address, uint64_t addralign)
1171 { 1176 {
1172 if (addralign != 0) 1177 if (addralign != 0)
1173 address = (address + addralign - 1) &~ (addralign - 1); 1178 address = (address + addralign - 1) &~ (addralign - 1);
1174 return address; 1179 return address;
1175 } 1180 }
1176 1181
1177 } // End namespace gold. 1182 } // End namespace gold.
1178 1183
1179 #endif // !defined(GOLD_LAYOUT_H) 1184 #endif // !defined(GOLD_LAYOUT_H)
OLDNEW
« no previous file with comments | « binutils/gold/i386.cc ('k') | binutils/gold/layout.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698