Commit Graph

177 Commits

Author SHA1 Message Date
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