PR gold/12910
authorIan Lance Taylor <ian@airs.com>
Thu, 23 Jun 2011 00:46:14 +0000 (00:46 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 23 Jun 2011 00:46:14 +0000 (00:46 +0000)
commit5393d7415a71a6f2cf3752e02ef078d7ff6e5f0a
treea0c89965b041ce2f337110a23e6f7e552984c545
parent1c23ac006028a1d2b12bdfec2fe73751fb7481ec
PR gold/12910
* options.h (class General_options): Add --ctors-in-init-array.
* layout.cc (Layout::get_output_section): Treat SHT_INIT_ARRAY and
friends as SHT_PROGBITS for merging sections.
(Layout::layout): Remove special handling of .init_array and
friends.  Don't sort if doing relocatable link.  Sort for .ctors
and .dtors if ctors_in_init_array.
(Layout::make_output_section): Force correct section types for
.init_array and friends.  Don't sort if doing relocatable link,
Don't sort .ctors and .dtors if ctors_in_init_array.
(Layout::section_name_mapping): Remove .ctors. and .dtorso.
(Layout::output_section_name): Add relobj parameter.  Change all
callers.  Handle .ctors. and .dtors. in code rather than table.
Handle .ctors and .dtors if ctors_in_init_array.
(Layout::match_file_name): New function, moved from output.cc.
* layout.h (class Layout): Update declarations.
* output.cc: Include "layout.h".
(Input_section_sort_entry::get_priority): New function.
(Input_section_sort_entry::match_file_name): Just call
Layout::match_file_name.
(Output_section::Input_section_sort_init_fini_compare::operator()):
Handle .ctors and .dtors.  Sort by explicit priority rather than
by name.
* configure.ac: Remove CONSTRUCTOR_PRIORITY test and conditional.
* testsuite/initpri2.c: New test.
* testsuite/Makefile.am: Don't test CONSTRUCTOR_PRIORITY.
(check_PROGRAMS): Add initpri2.
(initpri2_SOURCES, initpri2_DEPENDENCIES): New variables.
(initpri2_LDFLAGS, initpri2_LDADD): New variables.
* configure, testsuite/Makefile.in: Rebuild.
gold/ChangeLog
gold/configure
gold/configure.ac
gold/layout.cc
gold/layout.h
gold/options.h
gold/output.cc
gold/testsuite/Makefile.am
gold/testsuite/Makefile.in
gold/testsuite/initpri2.c [new file with mode: 0644]