newlib/include
Sriraman Tallam 3883a0743b Patch adds support to allow plugins to map selected subset of sections to unique
segments.


2012-08-24  Sriraman Tallam  <tmsriram@google.com>

	* gold.cc (queue_middle_tasks): Call layout again when unique
	segments for sections is desired.
	* layout.cc (Layout::Layout): Initialize new members.
	(Layout::get_output_section_flags): New function.
	(Layout::choose_output_section): Call get_output_section_flags.
	(Layout::layout): Make output section for mapping to a unique segment.
	(Layout::insert_section_segment_map): New function.
	(Layout::attach_allocated_section_to_segment): Make unique segment for
	output sections marked so.
	(Layout::segment_precedes): Check for unique segments when sorting.
	* layout.h (Layout::Unique_segment_info): New struct.
	(Layout::Section_segment_map): New typedef.
	(Layout::insert_section_segment_map): New function.
	(Layout::get_output_section_flags): New function.
	(Layout::is_unique_segment_for_sections_specified): New function.
	(Layout::set_unique_segment_for_sections_specified): New function.
	(Layout::unique_segment_for_sections_specified_): New member.
	(Layout::section_segment_map_): New member.
	* object.cc (Sized_relobj_file<size, big_endian>::do_layout):
	Rename is_gc_pass_one to is_pass_one.
	Rename is_gc_pass_two to is_pass_two.
	Rename is_gc_or_icf to is_two_pass.
	Check for which pass based on whether symbols data is present.
	Make it two pass when unique segments for sections is desired.
	* output.cc (Output_section::Output_section): Initialize new
	members.
	* output.h (Output_section::is_unique_segment): New function.
	(Output_section::set_is_unique_segment): New function.
	(Output_section::is_unique_segment_): New member.
	(Output_section::extra_segment_flags): New function.
	(Output_section::set_extra_segment_flags): New function.
	(Output_section::extra_segment_flags_): New member.
	(Output_section::segment_alignment): New function.
	(Output_section::set_segment_alignment): New function.
	(Output_section::segment_alignment_): New member.
	(Output_segment::Output_segment): Initialize is_unique_segment_.
	(Output_segment::is_unique_segment): New function.
	(Output_segment::set_is_unique_segment): New function.
	(Output_segment::is_unique_segment_): New member.
	* plugin.cc (allow_unique_segment_for_sections): New function.
	(unique_segment_for_sections): New function.
	(Plugin::load): Add new functions to transfer vector.
	* Makefile.am (plugin_final_layout.readelf.stdout): Add readelf output.
	* Makefile.in: Regenerate.
	* testsuite/plugin_final_layout.sh: Check if unique segment
	functionality works.
	* testsuite/plugin_section_order.c (onload): Check if new interfaces
	are available.
	(allow_unique_segment_for_sections): New global.
	(unique_segment_for_sections): New global.
	(claim_file_hook): Call allow_unique_segment_for_sections.
	(all_symbols_read_hook): Call unique_segment_for_sections.


2012-08-24  Sriraman Tallam  <tmsriram@google.com>

	* plugin-api.h (ld_plugin_allow_unique_segment_for_sections):
	New interface.
	(ld_plugin_unique_segment_for_sections): New interface.
	(LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val.
	(LDPT_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val.
	(tv_allow_unique_segment_for_sections): New member.
	(tv_unique_segment_for_sections): New member.
2012-08-24 18:35:35 +00:00
..
aout Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
cgen * basic-modes.h (MAKEDI): New macro. 2010-01-06 05:25:24 +00:00
coff Fix spelling mistakes. 2011-06-02 13:43:23 +00:00
elf * bfd/elf32-arm.c (v8): New array. 2012-08-24 07:50:37 +00:00
gdb PR 14125 2012-06-23 22:23:43 +00:00
mach-o deal with endian-ness in mach-o non-scattered relocs. 2012-02-23 16:29:56 +00:00
nlm Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
opcode * gas/config/tc-arm.c (check_obsolete): New function. 2012-08-24 07:52:49 +00:00
som include/som: 2010-06-10 08:31:20 +00:00
vms 2012-03-08 Tristan Gingold <gingold@adacore.com> 2012-03-08 14:14:52 +00:00
alloca-conf.h * alloca-conf.h: Clarify comment. 2009-11-18 11:57:44 +00:00
ansidecl.h * obstack.h [!GNUC] (obstack_free): Avoid cast to int. 2011-10-22 01:35:29 +00:00
bfdlink.h bfd/ 2012-04-09 16:27:18 +00:00
binary-io.h
bout.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
ChangeLog Patch adds support to allow plugins to map selected subset of sections to unique 2012-08-24 18:35:35 +00:00
ChangeLog-9103 Sync include/ChangeLog-9103 from GCC to fix invalid UTF-8. 2009-08-16 12:06:21 +00:00
COPYING
COPYING3
demangle.h merge from gcc 2012-01-07 02:53:16 +00:00
dis-asm.h Add support for 64-bit ARM architecture: AArch64 2012-08-13 14:52:48 +00:00
dwarf2.def merge from gcc 2012-06-19 00:03:49 +00:00
dwarf2.h merge from gcc 2012-06-08 19:01:23 +00:00
dyn-string.h merge from gcc 2009-06-01 19:40:32 +00:00
fibheap.h merge from gcc 2009-06-01 19:40:32 +00:00
filenames.h include/ 2012-07-13 23:39:46 +00:00
floatformat.h merge from gcc 2011-01-03 21:05:50 +00:00
fnmatch.h
fopen-bin.h
fopen-same.h
fopen-vms.h
gdbm.h
getopt.h
hashtab.h merge from gcc 2010-06-10 18:30:17 +00:00
hp-symtab.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
ieee.h
leb128.h * leb128.h: #include stdint.h, inttypes.h. 2012-05-24 01:18:15 +00:00
libiberty.h merge from gcc 2011-09-28 20:01:37 +00:00
lto-symtab.h merge from gcc 2009-10-07 02:57:27 +00:00
MAINTAINERS
md5.h
oasys.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
objalloc.h
obstack.h * obstack.h [!GNUC] (obstack_free): Avoid cast to int. 2011-10-22 01:35:29 +00:00
os9k.h
partition.h
plugin-api.h Patch adds support to allow plugins to map selected subset of sections to unique 2012-08-24 18:35:35 +00:00
progress.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
safe-ctype.h
sha1.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
simple-object.h merge from gcc 2010-11-17 02:03:39 +00:00
sort.h
splay-tree.h merge from gcc 2012-04-10 17:07:28 +00:00
symcat.h * symcat.h (CONCAT5, CONCAT6, XCONCAT5, XCONCAT6): Define. 2010-03-23 15:58:51 +00:00
timeval-utils.h merge from gcc 2011-09-28 20:01:37 +00:00
xregex2.h
xregex.h merge from gcc 2011-07-25 17:11:44 +00:00
xtensa-config.h merge from gcc 2011-01-03 21:05:50 +00:00
xtensa-isa-internal.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
xtensa-isa.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00