Ian Lance Taylor
0864d55193
* options.h (class General_options): Define --wrap as a special
...
option. Add wrap_symbols_ field.
(General_options::any_wrap_symbols): New function.
(General_options::is_wrap_symbol): New function.
* options.cc (General_options::parse_wrap): New function.
(General_options::General_options): Initialize wrap_symbols_.
* symtab.cc (Symbol_table::wrap_symbol): New function.
(Symbol_table::add_from_object): Handle --wrap.
* symtab.h (class Symbol_table): Declare wrap_symbol.
* target.h (Target::wrap_char): New function.
(Target::Target_info): Add wrap_char field.
* i386.cc (Target_i386::i386_info): Initialize wrap_char.
* x86_64.cc (Target_x86_64::x86_64_info): Likewise.
* testsuite/testfile.cc (Target_test::test_target_info):
Likewise.
2008-04-09 00:48:13 +00:00
Ian Lance Taylor
e96caa7910
* options.cc (options::help): Print list of supported targets.
...
* target-select.h: Include <vector>.
(class Target_selector): Make machine_, size_, and is_big_endian_
fields const. Add bfd_name_ and instantiated_target_ fields.
(Target_selector::Target_selector): Add bfd_name parameter.
(Target_selector::recognize): Make non-virtual, call
do_recognize.
(Target_selector::recognize_by_name): Make non-virtual, call
do_recognize_by_name.
(Target_selector::supported_names): New function.
(Target_selector::bfd_name): New function.
(Target_selector::do_instantiate_target): New pure virtual
function.
(Target_selector::do_recognize): New virtual function.
(Target_selector::do_recognize_by_name): New virtual function.
(Target_selector::instantiate_target): New private function.
(supported_target_names): Declare.
* target-select.cc (Target_selector::Target_selector): Update for
new parameter and fields.
(select_target_by_name): Check that the name matches before
calling recognize_by_name.
(supported_target_names): New function.
* i386.cc (class Target_selector_i386): Update Target_selector
constructor call. Remove recognize and recognize_by_name. Add
do_instantiate_target.
* x86_64.cc (class Target_selector_x86_64): Likewise.
* testsuite/testfile.cc (class Target_selector_test): Update for
changes to Target_selector.
2008-03-25 21:39:01 +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
ebdbb4583d
Update copyright years. Update language files.
2008-03-13 21:04:21 +00:00
Ian Lance Taylor
7d1a9ebbf2
Remove gcc 3.2 compatibility hacks.
2008-02-29 19:19:17 +00:00
Ian Lance Taylor
8851eccaec
From Craig Silverstein: Have Parameters point to General_options.
2008-02-28 00:18:24 +00:00
Ian Lance Taylor
7019cd2565
Implement -q/--emit-relocs.
2008-02-27 22:38:18 +00:00
Ian Lance Taylor
cd72c29180
From Craig Silverstein: implement -z max-page-size and -z
...
common-page-size.
2008-02-26 22:10:32 +00:00
Ian Lance Taylor
0daa6f62c8
Support selecting target by name.
2008-02-13 02:44:50 +00:00
Ian Lance Taylor
dceae3c154
Support dynamic relocations against local section symbols.
2008-02-12 00:28:48 +00:00
Ian Lance Taylor
8fc19601e8
From Cary Coutant: fix handling of undefined symbols in shared
...
libraries.
2008-02-08 22:49:22 +00:00
Ian Lance Taylor
6a74a71947
Initial -r support.
2008-02-06 08:13:50 +00:00
Ian Lance Taylor
03e8f2b225
From Cary Coutant: Fix a case in which code takes the address of a
...
function and also calls it directly.
2008-02-01 00:39:10 +00:00
Ian Lance Taylor
9b07f471e3
Don't pass around the target in order to define symbols; get it from
...
the parameters instead.
2008-01-26 01:17:45 +00:00
Ian Lance Taylor
0700cf329e
From Cary Coutant: Fix mixing PIC and non-PIC relocs in the same
...
shared library.
2008-01-23 07:15:59 +00:00
Ian Lance Taylor
99f8facac9
From Cary Coutant: Fix handling of versioned symbols, add some tests.
2007-12-21 23:31:19 +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
535890bb64
From Cary Coutant: Set DF_STATIC_TLS as appropriate.
2007-12-11 23:30:52 +00:00
Ian Lance Taylor
94c4710f80
From Cary Coutant: Handle TLS entry for TLS module index.
2007-12-11 04:23:05 +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
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
a2b1aa12f7
From Craig Silverstein: Add support for --demangle.
2007-11-15 01:12:55 +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
9a2d698415
Add heuristics for undefined symbol warnings.
2007-11-14 16:53:25 +00:00
Ian Lance Taylor
601e4987b8
Revert last patch.
2007-11-14 08:03:41 +00:00
Ian Lance Taylor
3728821ffc
Support special always-defined symbols for targets.
2007-11-14 07:52:21 +00:00
Ian Lance Taylor
386c048c7a
Correct handling of GOT references in a regular object.
2007-11-12 17:51:55 +00:00
Ian Lance Taylor
d61c6bd41c
From Cary Coutant: More shared library support, some refactorization.
2007-11-09 19:45:08 +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
86849f1fac
From Cary Coutant: Correct generation of RELATIVE relocs.
2007-11-02 04:08:52 +00:00
Ian Lance Taylor
96f2030e25
From Cary Coutant: More support for -shared, including fixes to GOT
...
handling.
2007-11-01 00:19:30 +00:00
Ian Lance Taylor
5662214762
From Craig Silverstein: better organization for TLS code.
2007-10-29 20:09:35 +00:00
Ian Lance Taylor
35cdfc9a87
Add support for PT_GNU_STACK.
2007-10-23 05:05:48 +00:00
Ian Lance Taylor
46fe162319
Fix versions of copied symbols.
2007-10-22 23:08:22 +00:00
Ian Lance Taylor
df2efe713a
Handle PLT32 against local symbols.
2007-10-20 00:33:31 +00:00
Ian Lance Taylor
436ca963fd
From Cary Coutant: preliminary shared library support.
2007-10-16 23:23:08 +00:00
Ian Lance Taylor
0c5e9c22aa
From Craig Silverstein: implement -Ttext.
2007-10-16 22:38:36 +00:00
Ian Lance Taylor
1b64748bed
From Craig Silverstein: support local GOT relocs for i386.
2007-10-16 00:42:36 +00:00
Ian Lance Taylor
a0c4fb0ac6
Remove extraneous newlines.
2007-10-14 06:57:58 +00:00
Ian Lance Taylor
75f2446ec3
Run all error handling through an Errors object. Delete output file
...
on error.
2007-10-14 06:49:14 +00:00
Ian Lance Taylor
e041f13d5a
From Craig Silverstein: use tls.h in x86_64.cc.
2007-10-13 00:15:07 +00:00
Ian Lance Taylor
7d00dcbd9c
From Andrew Chatham: exit on relocation error.
2007-10-11 19:13:02 +00:00
Ian Lance Taylor
af6359d59d
From Craig Silverstein: add tls.h, use it in i386.cc.
2007-10-08 05:12:59 +00:00
Ian Lance Taylor
46cf9fa27e
Add support for local dynamic relocations.
2007-10-07 17:05:07 +00:00
Ian Lance Taylor
d61c17ea24
From Craig Silverstein: x86_64 TLS support.
2007-10-04 22:28:36 +00:00
Ian Lance Taylor
7bb3655e07
Cleanups from Craig Silverstein.
2007-10-01 23:42:58 +00:00
Ian Lance Taylor
ab5c9e90a6
Use special value when we refer a function symbol in some way other
...
than calling it.
2007-09-23 05:31:48 +00:00
Ian Lance Taylor
6cb15b7f89
Add licensing text to every source file.
2007-09-22 21:02:10 +00:00
Ian Lance Taylor
80576242ab
Initialize count_ field, tweak parameters testing.
2007-09-21 07:34:51 +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
8462ae85e4
Generate a GLOB_DAT reloc for a GOT32 reloc against a symbol defined
...
in a dynamic object.
2007-09-12 16:38:04 +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
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
Ian Lance Taylor
c06b7b0ba3
Snapshot. Includes first cut at output relocation sections.
2006-11-16 00:38:25 +00:00
Ian Lance Taylor
dbe717effb
More dynamic object support, initial scripting support.
2006-11-14 19:21:05 +00:00
Ian Lance Taylor
f6ce93d6e9
Split Object into Dynobj and Relobj, incorporate elfcpp swapping changes.
2006-11-06 22:46:08 +00:00
Ian Lance Taylor
ead1e4244a
Can now do a full static link of hello, world in C or C++
2006-11-03 18:26:11 +00:00
Ian Lance Taylor
92e059d8dc
Framework for relocation scanning. Implement simple static TLS
...
relocations.
2006-10-20 20:40:49 +00:00
Ian Lance Taylor
61ba1cf936
Snapshot. Now able to produce a minimal executable which actually
...
runs.
2006-09-29 19:58:17 +00:00
Ian Lance Taylor
75f65a3e30
Finished layout code.
2006-09-27 22:53:42 +00:00
Ian Lance Taylor
14bfc3f555
Another snapshot of the current state of the sources. Gets to the
...
point of symbol resolution and can now issue a multiple definition
error. Also added target selection infrastructure.
2006-08-18 22:29:20 +00:00