Ian Lance Taylor
f3e9c5c517
PR 6049
...
* options.h (DEFINE_set): Add VARNAME_begin and VARNAME_end
functions.
(class General_options): Remove existing --undefined, and add
--no-undefined instead. Add new --undefined as synonym for -u.
* archive.cc (Archive::add_symbols): Check whether symbol was
named with -u.
* gold.cc (queue_middle_tasks): Add -u symbols to symbol table.
* symtab.h (class Symbol): Rename CONSTANT to IS_CONSTANT; change
all uses. Add IS_UNDEFINED. Update declarations to split
different versions of init_base. Declare init_base_undefined.
(Symbol::is_defined): Handle IS_UNDEFINED.
(Symbol::is_undefined): Likewise.
(Symbol::is_weak_undefined): Call is_undefined.
(Symbol::is_absolute): Handle IS_CONSTANT.
(class Sized_symbol): Update declarations to split different
versions of init. Declare init_undefined.
(class Symbol_table): Declare new functions.
* symtab.cc (Symbol::init_base_object): Rename from init_base.
Change all callers.
(Symbol::init_base_output_data): Likewise.
(Symbol::init_base_output_segment): Likewise.
(Symbol::init_base_constant): Likewise.
(Symbol::init_base_undefined): New function.
(Sized_symbol::init_object): Rename from init. Change all
callers.
(Sized_symbol::init_output_data): Likewise.
(Sized_symbol::init_output_segment): Likewise.
(Sized_symbol::init_constant): Likewise.
(Sized_symbol::init_undefined): New function.
(Symbol_table::add_undefined_symbols_from_command_line): New
function.
(Symbol_table::do_add_undefined_symbols_from_command_line): New
function.
(Symbol::final_value_is_known): Handle IS_UNDEFINED.
(Symbol::output_section): Likewise.
(Symbol::set_output_section): Likewise.
(Symbol_table::sized_finalize_symbol): Likewise.
(Symbol_table::sized_write_globals): Likewise.
* resolve.cc (Symbol_table::should_override): Likewise.
(Symbol::override_base_with_special): Likewise.
2008-05-07 06:08:01 +00:00
Ian Lance Taylor
2b706932ee
* options.h (DEFINE_var): Add set_user_set_##varname__.
...
(DEFINE_bool_alias): New macro.
(class General_options): Define -Bstatic using DEFINE_bool_alias
rather than DEFINE_special. Add --undefined as an alias for -z
defs.
* options.cc (General_options::parse_Bstatic): Remove.
2008-05-06 20:40:33 +00:00
Ian Lance Taylor
d82a5bcc85
* options.h (class General_options): Add --fatal-warnings.
...
* main.cc (main): Implement --fatal-warnings.
* errors.h (Errors::warning_count): New function.
2008-05-06 18:32:38 +00:00
Ian Lance Taylor
f1f70eae28
* options.h (class General_options): Add -Bsymbolic-functions.
...
* symtab.h (Symbol::is_preemptible): Check for
-Bsymbolic-functions.
2008-05-06 17:46:31 +00:00
Ian Lance Taylor
d98bc257cf
2008-05-05 Ian Lance Taylor <iant@google.com>
...
* options.h (DEFINE_bool): For DASH_Z, create the negative option
as noVARNAME rather than no-VARNAME.
(class General_options): Add option -z combreloc.
* output.h (class Output_reloc) [SHT_REL]: Declare compare and
get_address.
(Output_reloc::sort_before) [SHT_REL]: New function.
(Output_reloc::sort_before) [SHT_RELA]: New function.
(class Output_data_reloc_base): Add sort_relocs_ field. Define
Sort_relocs_comparison.
(Output_data_reloc_base::Output_data_reloc_base): Add sort_relocs
parameter. Change all callers.
(Output_data_reloc::Output_data_reloc) [both versions]: Add
sort_relocs parameter. Change all callers.
* output.cc (Output_reloc::get_address): New function, broken out
of write_rel.
(Output_reloc::write_rel): Call it.
(Output_reloc::compare): New function.
(Output_data_reloc_base::do_write): Optionally sort relocs.
2008-05-06 05:03:15 +00:00
Cary Coutant
c5818ff112
* errors.cc (Errors::info): New function.
...
(gold_info): New function.
* errors.h (Errors::info): New function.
* gold.h (gold_info): New function.
* object.cc (Input_objects::add_object): Print trace output.
* options.cc (options::parse_set): New function.
(General_options::parse_wrap): Deleted.
(General_options::General_options): Deleted initializer.
* options.h (options::String_set): New typedef.
(options::parse_set): New function.
(DEFINE_set): New macro.
(General_options::wrap): Changed to use DEFINE_set. Changed
callers of any_wrap_symbols and is_wrap_symbol.
(General_options::trace, General_options::trace_symbol):
New options.
(General_options::any_wrap_symbols, General_options::is_wrap_symbol)
(General_options::wrap_symbols_): Deleted.
* symtab.cc (Symbol_table::add_from_object): Print trace output.
2008-04-17 22:45:47 +00:00
David S. Miller
b5be4a7c8c
* options.cc (General_options::parse_V): New function.
...
* options.h: Add entries for -V and -Qy.
2008-04-17 20:23:59 +00:00
David S. Miller
7c41443585
elfcpp/
...
* elfcpp.h (DF_1_NOW, DF_1_GLOBAL, DF_1_GROUP,
DF_1_NODELETE, DF_1_LOADFLTR, DF_1_INITFIRST,
DF_1_NOOPEN, DF_1_ORIGIN, DF_1_DIRECT, DF_1_TRANS,
DF_1_INTERPOSE, DF_1_NODEFLIB, DF_1_NODUMP,
DF_1_CONLFAT): New enum constants.
gold/
* options.h (DEFINE_enable): New macro.
(new_dtags): New enable option.
(initfirst, interpose, loadfltr, nodefaultlib,
nodelete, nodlopen, nodump): New -z options.
* layout.cc (Layout:finish_dynamic_section): If new
dtags enabled, emit DT_RUNPATH. Also, emit a
DT_FLAGS_1 containing any specified -z flags.
2008-04-16 23:21:01 +00:00
Ian Lance Taylor
706e1f5e80
* options.h (General_options): Add entries for '-Y' and
...
'-relax'.
* options.cc (General_options:finalize): If -Y was used, add those
entries to the library path instead of the default "/lib" and
"/usr/lib".
2008-04-11 20:28:34 +00:00
Ian Lance Taylor
cdb0b8f565
* options.h (class General_options): Add --noinhibit-exec option.
...
* main.cc (main): Check --noinhibit-exec.
2008-04-09 01:19:09 +00:00
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
8ed814a99c
* options.h (class General_options): Define build_id option.
...
* layout.h (class Layout): Declare write_build_id, create_note,
create_build_id. Add build_id_note_ member.
* layout.cc: Include <cerrno>, <fcntl.h>, <unistd.h>,
"libiberty.h", "md5.h", "sha1.h".
(Layout::Layout): Initialize eh_frame_data_,
eh_frame_hdr_section_, and build_id_note_.
(Layout::finalize): Call create_build_id.
(Layout::create_note): New function, broken out of
Layout::create_gold_note.
(Layout::create_gold_note): Call create_note.
(Layout::create_build_id): New function.
(Layout::write_build_id): New function.
(Close_task_runner::run): Call write_build_id.
2008-03-25 05:11:41 +00:00
Ian Lance Taylor
086a18414a
* options.cc: Include "demangle.h".
...
(parse_optional_string): New function.
(parse_long_option): Handle takes_optional_argument.
(parse_short_option): Update dash_z initializer. Handle
takes_optional_argument.
(General_options::General_options): Initialize do_demangle_.
(General_options::finalize): Set do_demangle_. Handle demangling
style.
* options.h (parse_optional_string): Declare.
(struct One_option): Add optional_arg field. Update constructor.
Update call constructor calls. Add takes_optional_argument
function.
(DEFINE_var): Add optional_arg__ parameter. Change all callers.
(DEFINE_optional_string): Define.
(General_options::demangle): Change from DEFINE_bool to
DEFINE_optional_string.
(General_options::no_demangle): New function.
(General_options::do_demangle): New function.
(General_options::set_do_demangle): New function.
(General_options::execstack_status_): Move definition to end of
class definition.
(General_options::static_): Likewise.
(General_options::do_demangle_): New field.
* object.cc (big_endian>::get_symbol_location_info): Call
Options::do_demangle, not Options::demangle.
* symtab.cc (demangle): Likewise.
2008-03-24 03:48:29 +00:00
Ian Lance Taylor
cbb93e6310
* gold.h: Include <cstddef> and <sys/types.h>
...
* options.h: Include <cstring>.
2008-03-22 18:51:35 +00:00
Ian Lance Taylor
eb42429a93
From Craig Silverstein: implement -z defs.
2008-03-20 05:22:37 +00:00
Ian Lance Taylor
2285a61069
From Craig Silverstein: Implement --debug=files to track file opens,
...
and implement --verbose as a synonym.
2008-03-13 01:46:17 +00:00
Ian Lance Taylor
fee2edb1e4
From Craig Silverstein: sort options into alphabetical order.
2008-03-07 18:50:04 +00:00
Ian Lance Taylor
c18476e7f1
Recognize --hash-bucket-empty-fraction.
2008-03-07 07:00:48 +00:00
Ian Lance Taylor
a4d4b13f68
Use N_ for option help strings, and call gettext when printing them.
2008-03-06 05:51:42 +00:00
Ian Lance Taylor
09ffbbe0d4
From Craig Silverstein: accept any string for input format, warn if
...
thread options when not supported.
2008-03-06 00:53:37 +00:00
Ian Lance Taylor
13670ee669
Support --hash-style=gnu.
2008-03-06 00:15:04 +00:00
Ian Lance Taylor
ee1fe73e11
From Craig Silverstein: rework option handling to make it easier to
...
add a new option.
2008-03-04 23:10:38 +00:00
Ian Lance Taylor
7cc619c3b1
From Craig Silverstein: rename some option functions in preparation
...
for reworking option handling.
2008-03-04 18:21:43 +00:00
Ian Lance Taylor
0dfbdef4c4
Support -d/--define-common.
2008-02-28 20:35:39 +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
a5dc070655
From Craig Silverstein: rework handling of Script_options.
2008-02-26 22:48:08 +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
45aa233bdc
From Craig Silverstein: rename option functions for future option
...
handling rewrite.
2008-02-26 21:45:30 +00:00
Ian Lance Taylor
756ac4a80d
Implement -Tdata and -Tbss.
2008-02-13 22:47:28 +00:00
Ian Lance Taylor
0daa6f62c8
Support selecting target by name.
2008-02-13 02:44:50 +00:00
Ian Lance Taylor
bc644c6cfc
Add support for --format binary for input files.
2008-02-08 07:06:58 +00:00
Ian Lance Taylor
516cb3d01e
Support --oformat binary.
2008-02-07 07:33:46 +00:00
Ian Lance Taylor
88dd47ac00
Implement --just-symbols, including -R FILE. Fix symbol values when
...
doing a relocatable link.
2008-02-07 01:51:25 +00:00
Ian Lance Taylor
15893b88b0
Treat an empty directory argument as the current directory.
2008-02-04 22:44:35 +00:00
Ian Lance Taylor
091244672e
From Andrew Chatham and Craig Silverstein: Add support for version
...
scripts.
2008-01-15 23:41:28 +00:00
Ian Lance Taylor
e5756efb6d
Support assignments and expressions in linker scripts.
2008-01-09 19:57:45 +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
fced7afdce
Add -h/-soname option.
2008-01-04 05:35:24 +00:00
Ian Lance Taylor
460c00b558
Fix --thread-count-middle and --thread-count-final.
2007-12-14 04:53:22 +00:00
Ian Lance Taylor
bc2c67ffde
From Craig Silverstein: Fix error message, add this->.
2007-12-08 03:05:27 +00:00
Ian Lance Taylor
3ae7da37eb
From Craig Silverstein: Use gold_fatal in options.h, beef up value checks.
2007-12-04 01:30:46 +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
c79126688f
Add threading support.
2007-11-22 00:05:51 +00:00
Ian Lance Taylor
02d2ba7402
From Craig Silverstein: Add --strip-debug-gdb.
2007-11-15 23:03:45 +00:00
Ian Lance Taylor
a2b1aa12f7
From Craig Silverstein: Add support for --demangle.
2007-11-15 01:12:55 +00:00
Ian Lance Taylor
e2827e5f52
Warn about undefined references in shared libraries if we have seen
...
all the DT_NEEDED entries for that library.
2007-11-14 07:34:53 +00:00
Ian Lance Taylor
a55ce7febf
From Craig Silverstein: Rework debug info code a bit, add option for
...
ODR violations, add test case.
2007-11-14 01:03:01 +00:00
Ian Lance Taylor
a0451b389c
From Craig Silverstein: Implement OPTION in linker scripts.
2007-10-30 06:27:03 +00:00
Ian Lance Taylor
3c2fafa531
From Craig Silverstein and Ian Lance Taylor: Process --script option.
2007-10-27 00:29:34 +00:00
Ian Lance Taylor
5d57def3b3
From Craig Silverstein: Minimal --script implementation.
2007-10-26 18:03:24 +00:00
Ian Lance Taylor
35cdfc9a87
Add support for PT_GNU_STACK.
2007-10-23 05:05:48 +00:00
Ian Lance Taylor
6161122258
Implement -Bstatic/-Bdynamic.
2007-10-22 18:04:43 +00:00
Ian Lance Taylor
51b08ebe94
Add support for -Bsymbolic.
2007-10-18 23:20:53 +00:00
Ian Lance Taylor
fe9a4c1201
Add infrastructure for threading support.
2007-10-17 06:24:50 +00:00
Ian Lance Taylor
0c5e9c22aa
From Craig Silverstein: implement -Ttext.
2007-10-16 22:38:36 +00:00
Ian Lance Taylor
e44fcf3bcf
Add --stats option to print runtime and memory usage statistics.
2007-10-12 05:51:25 +00:00
Ian Lance Taylor
46738c9aeb
From Craig Silverstein: don't permit -s and -r.
2007-10-10 19:30:39 +00:00
Ian Lance Taylor
9e2dcb779c
Implement -s and -S options which strip symbols.
2007-10-10 19:02:56 +00:00
Ian Lance Taylor
ad2d6943a4
Full support for --sysroot.
2007-10-04 05:49:04 +00:00
Ian Lance Taylor
51dee2fec3
From Craig Silverstein: add support for searching for input files
...
named in linker scripts.
2007-10-02 21:24:41 +00:00
Ian Lance Taylor
6cb15b7f89
Add licensing text to every source file.
2007-09-22 21:02:10 +00:00
Ian Lance Taylor
ca3a67a5cf
From Craig Silverstein: Add -O option.
2007-09-21 05:43:33 +00:00
Ian Lance Taylor
192f9b8501
Fix handling of --eh-frame-hdr option.
2007-09-19 23:50:56 +00:00
Ian Lance Taylor
15b3cfae2b
Add -rpath-link option, currently unused.
2007-09-06 23:37:53 +00:00
Ian Lance Taylor
7da52175b6
Recognize and ignore the --eh-frame-hdr option.
2007-08-22 17:07:36 +00:00
Ian Lance Taylor
a6badf5a97
Add support for -E/--export-dynamic. Also clean up --help output a bit.
2007-08-22 05:06:38 +00:00
Ian Lance Taylor
4973341a7d
Implement --whole-archive.
2007-08-21 23:37:56 +00:00
Ian Lance Taylor
41f542e70b
Add support for -rpath.
2007-08-21 20:37:32 +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
dbe717effb
More dynamic object support, initial scripting support.
2006-11-14 19:21:05 +00:00
Ian Lance Taylor
652ec9bd89
Ignored the -m option, for old linker compatibility.
2006-11-03 18:48:03 +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
a2fb1b05e4
New drop, with first cut of section layout code.
2006-09-21 22:13:18 +00:00
Ian Lance Taylor
bae7f79e03
Initial CVS checkin of gold
2006-08-04 23:10:59 +00:00