Ian Lance Taylor
624f881062
* output.cc (Output_reloc<SHT_REL>::local_section_offset): Add
...
addend parameter. Change caller. Handle merge sections.
(Output_reloc<SHT_REL>::symbol_value): Change parameter type from
Address to Addend. Don't add in the result of
local_section_offset, pass down the addend and use the returned
value.
* output.h (class Output_reloc<SHT_REL>): Add Addend typedef.
Update declarations of local_section_offset and symbol_value.
* testsuite/two_file_test_1.cc (t18): New function.
* testsuite/two_file_test_2.cc (f18): New function.
* testsuite/two_file_test_main.cc (main): Call t18.
* testsuite/two_file_test.h (t18, f18): Declare.
2008-04-07 22:46:17 +00:00
Ian Lance Taylor
2fd322316e
* layout.cc (Layout::layout): If we see an input section with a
...
name that needs sorting, set the must_sort flag for the output
section.
(Layout::make_output_section): If the name of the output section
indicates that it might require sorting, set the may_sort flag.
* output.h (Output_section::may_sort_attached_input_sections): New
function.
(Output_section::set_may_sort_attached_input_sections): New
function.
(Output_section::must_sort_attached_input_sections): New
function.
(Output_section::set_must_sort_attached_input_sections): New
function.
(class Output_section): Declare Input_section_sort_entry. Define
Input_section_sort_compare. Declare
sort_attached_input_sections. Add new fields:
may_sort_attached_input_sections_,
must_sort_attached_input_sections_,
attached_input_sections_are_sorted_.
* output.cc (Output_section::Output_section): Initialize new
fields.
(Output_section::add_input_section): Add an entry to
input_sections_ if may_sort or must_sort are true.
(Output_section::set_final_data_size): Call
sort_attached_input_sections if necessary.
(Output_section::Input_section_sort_entry): Define new class.
(Output_section::Input_section_sort_compare::operator()): New
function.
(Output_section::sort_attached_input_sections): New function.
* configure.ac: Check whether the compiler supports constructor
priorities. Define a CONSTRUCTOR_PRIORITY automake conditional.
* testsuite/initpri1.c: New file.
* testsuite/Makefile.am (check_PROGRAMS): Add initpri1 if
CONSTRUCTOR_PRIORITY.
(initpri1_SOURCES, initpri1_DEPENDENCIES): New variables.
(initpri1_LDFLAGS): New variable.
* configure, Makefile.in, testsuite/Makefile.in: Rebuild.
2008-03-28 22:42:34 +00:00
Cary Coutant
0a65a3a740
* i386.cc (Target_i386::Got_type): New enum declaration.
...
(Target_i386::Scan::local): Updated callers of Output_data_got
member functions.
(Target_i386::Scan::global): Likewise.
(Target_i386::Relocate::relocate): Likewise.
(Target_i386::Relocate::relocate_tls): Likewise.
* object.h (Got_offset_list): New class.
(Sized_relobj::local_has_got_offset): Added got_type parameter.
(Sized_relobj::local_got_offset): Likewise.
(Sized_relobj::set_local_got_offset): Likewise.
(Sized_relobj::local_has_tls_got_offset): Removed.
(Sized_relobj::local_tls_got_offset): Removed.
(Sized_relobj::set_local_tls_got_offset): Removed.
(Sized_relobj::Local_got_offsets): Changed to store a list of offsets.
* output.cc (Output_data_got::add_global): Added got_type parameter.
(Output_data_got::add_global_with_rel): Likewise.
(Output_data_got::add_global_with_rela): Likewise.
(Output_data_got::add_global_pair_with_rel): New function.
(Output_data_got::add_global_pair_with_rela): New function.
(Output_data_got::add_local): Added got_type parameter.
(Output_data_got::add_local_with_rel): Likewise.
(Output_data_got::add_local_with_rela): Likewise.
(Output_data_got::add_local_pair_with_rel): New function.
(Output_data_got::add_local_pair_with_rela): New function.
(Output_data_got::add_global_tls): Removed.
(Output_data_got::add_global_tls_with_rel): Removed.
(Output_data_got::add_global_tls_with_rela): Removed.
(Output_data_got::add_local_tls): Removed.
(Output_data_got::add_local_tls_with_rel): Removed.
(Output_data_got::add_local_tls_with_rela): Removed.
* output.h (Output_data_got::add_global): Added got_type parameter.
(Output_data_got::add_global_with_rel): Likewise.
(Output_data_got::add_global_with_rela): Likewise.
(Output_data_got::add_global_pair_with_rel): New function.
(Output_data_got::add_global_pair_with_rela): New function.
(Output_data_got::add_local): Added got_type parameter.
(Output_data_got::add_local_with_rel): Likewise.
(Output_data_got::add_local_with_rela): Likewise.
(Output_data_got::add_local_pair_with_rel): New function.
(Output_data_got::add_local_pair_with_rela): New function.
(Output_data_got::add_global_tls): Removed.
(Output_data_got::add_global_tls_with_rel): Removed.
(Output_data_got::add_global_tls_with_rela): Removed.
(Output_data_got::add_local_tls): Removed.
(Output_data_got::add_local_tls_with_rel): Removed.
(Output_data_got::add_local_tls_with_rela): Removed.
* resolve.cc (Symbol::override_base_with_special): Removed
reference to has_got_offset_ field.
* symtab.cc (Symbol::init_fields): Replaced initialization
of got_offset_ with got_offsets_. Removed initialization
of has_got_offset_
*symtab.h (Symbol::has_got_offset): Aded got_type parameter.
(Symbol::got_offset): Likewise.
(Symbol::set_got_offset): Likewise.
(Symbol::has_tls_got_offset): Removed.
(Symbol::tls_got_offset): Removed.
(Symbol::set_tls_got_offset): Removed.
(Symbol::got_offset_): Removed.
(Symbol::tls_mod_got_offset_): Removed.
(Symbol::tls_pair_got_offset_): Removed.
(Symbol::got_offsets_): New field.
(Symbol::has_got_offset): Removed.
(Symbol::has_tls_mod_got_offset): Removed.
(Symbol::has_tls_pair_got_offset): Removed.
* x86_64.cc (Target_x86_64::Got_type): New enum declaration.
(Target_x86_64::Scan::local): Updated callers of Output_data_got
member functions.
(Target_x86_64::Scan::global): Likewise.
(Target_x86_64::Relocate::relocate): Likewise.
(Target_x86_64::Relocate::relocate_tls): Likewise.
2008-03-25 18:37:16 +00:00
Ian Lance Taylor
96a2b4e4bf
Make sure the start and size of the TLS segment are aligned.
2008-03-19 21:41:38 +00:00
Ian Lance Taylor
d1f003c610
Fix handling of RELA relative relocs against local symbols in merge
...
sections.
2008-03-16 23:51:19 +00:00
Ian Lance Taylor
ebdbb4583d
Update copyright years. Update language files.
2008-03-13 21:04:21 +00:00
Ian Lance Taylor
1650c4ff50
Combine read-only .eh_frame sections with read-write .eh_frame
...
sections.
2008-03-12 04:38:42 +00:00
Ian Lance Taylor
7d1a9ebbf2
Remove gcc 3.2 compatibility hacks.
2008-02-29 19:19:17 +00:00
Ian Lance Taylor
756ac4a80d
Implement -Tdata and -Tbss.
2008-02-13 22:47:28 +00:00
Ian Lance Taylor
dceae3c154
Support dynamic relocations against local section symbols.
2008-02-12 00:28:48 +00:00
Ian Lance Taylor
77e655378d
Track sections for expressions.
2008-02-09 01:22:17 +00:00
Ian Lance Taylor
516cb3d01e
Support --oformat binary.
2008-02-07 07:33:46 +00:00
Ian Lance Taylor
755ab8af10
Fix group signature handling for relocatable link, add bootstrap
...
relocatable test.
2008-02-06 19:32:32 +00:00
Ian Lance Taylor
6a74a71947
Initial -r support.
2008-02-06 08:13:50 +00:00
Ian Lance Taylor
1c4f3631bd
Implement PHDRS.
2008-02-04 22:54:31 +00:00
Ian Lance Taylor
a445fddf82
Fully implement the SECTIONS clause.
2008-02-04 05:43:05 +00:00
Ian Lance Taylor
14144f39e4
Don't include options.h in fileread.h. Remove General_options
...
reference from Output_file class.
2008-01-18 23:26:48 +00:00
Ian Lance Taylor
d391083d3c
Add support for -e and for ENTRY in linker scripts.
2008-01-06 00:47:10 +00:00
Ian Lance Taylor
8d32f93595
Correct handling of non-section symbol in merged section. Avoid some
...
64-bit signed/unsigned warnings.
2007-12-21 23:08:25 +00:00
Ian Lance Taylor
a9a60db689
Speed up relocations against local symbols in merged sections.
2007-12-21 21:19:45 +00:00
Ian Lance Taylor
fe8718a463
Convert more instances of off_t to be 32-bit types.
2007-12-20 21:21:24 +00:00
Ian Lance Taylor
1e9836570f
Update comments about output offsets and merged input sections.
2007-12-20 16:27:34 +00:00
Ian Lance Taylor
8f00aeb8a6
Make functions on hot path inline. Remove a mistaken virtual
...
declaration.
2007-12-20 01:29:04 +00:00
Ian Lance Taylor
38c5e8b493
Print statistics about merge sections with --stats.
2007-12-18 21:24:10 +00:00
Ian Lance Taylor
8383303e0a
Add section_size_type and section_offset_type, use them to replace a
...
lot of instances of off_t.
2007-12-18 00:48:04 +00:00
Ian Lance Taylor
e8c846c359
From Cary Coutant: Fix handling of RELATIVE RELA relocs.
2007-12-07 19:32:59 +00:00
Ian Lance Taylor
7bf1f8020f
From Cary Coutant: More support for generating shared libraries.
2007-12-06 05:55:50 +00:00
Ian Lance Taylor
c420411fe8
From Craig Silverstein: Support irregular output files.
2007-12-04 23:42:28 +00:00
Ian Lance Taylor
96803768f1
Compress all debug sections.
2007-12-01 06:34:12 +00:00
Ian Lance Taylor
9a0910c33e
From Craig Silverstein: Add support for compressing .debug_str section.
2007-11-30 00:35:27 +00:00
Ian Lance Taylor
27bc2bce09
Clean up setting address and section offset.
2007-11-29 20:10:17 +00:00
Ian Lance Taylor
4f4c5f80c7
From Cary Coutant: Count textrel with output sections rather than
...
setting a flag as we add each reloc in the target code.
2007-11-15 23:46:46 +00:00
Ian Lance Taylor
07f397aba3
From Cary Coutant: Improve i386 shared library TLS support.
2007-11-14 22:31:02 +00:00
Ian Lance Taylor
730cdc88f7
Generate a complete exception frame header. Discard duplicate
...
exception frame information.
2007-11-09 07:00:15 +00:00
Ian Lance Taylor
91ea499d4a
Check that we don't set the output section index twice.
2007-11-07 18:29:34 +00:00
Ian Lance Taylor
87f9577614
Correctly handle alignment in merge sections.
2007-10-18 17:46:23 +00:00
Ian Lance Taylor
cfd73a4e26
Add an option for Stringpools to not copy strings.
2007-10-12 06:06:34 +00:00
Ian Lance Taylor
e727fa71af
Add support for local GOT offsets.
2007-10-08 07:22:21 +00:00
Ian Lance Taylor
9025d29d14
Put size and endianness in parameters.
2007-09-26 07:01:35 +00:00
Ian Lance Taylor
6cb15b7f89
Add licensing text to every source file.
2007-09-22 21:02:10 +00:00
Ian Lance Taylor
7e1edb9089
Add global parameters.
2007-09-21 07:20:01 +00:00
Ian Lance Taylor
c51e6221b8
Use nops when doing alignment padding between code sections.
2007-09-21 05:31:19 +00:00
Ian Lance Taylor
0496d5e5b4
Force PT_LOAD segments to be aligned to the page size.
2007-08-21 21:03:50 +00:00
Ian Lance Taylor
41f542e70b
Add support for -rpath.
2007-08-21 20:37:32 +00:00
Ian Lance Taylor
b8e6aad960
Add support for SHF_MERGE sections.
2007-05-16 17:42:48 +00:00
Ian Lance Taylor
14b3174058
Generate version information.
2006-12-06 00:02:36 +00:00
Ian Lance Taylor
16649710df
Can now dynamically link hello, world.
2006-12-01 16:51:25 +00:00
Ian Lance Taylor
1ddbd1e617
gcc 3.2.2 portability hacks.
2006-12-01 00:10:37 +00:00
Ian Lance Taylor
5a6f7e2db5
Added a testsuite. More support for COPY relocations.
2006-11-30 23:52:50 +00:00
Ian Lance Taylor
a3ad94edd4
Hash tables, dynamic section, i386 PLT, gold_assert.
2006-11-29 17:56:40 +00:00