Kris Van Hees
d7ab2a4705
2008-08-28 Kris Van Hees <kris.van.hees@oracle.com>
...
PR gold/6858
* options.cc (General_options::finalize): Allow undefined symbols
in shlibs if linking -shared.
PR gold/6859
* symtab.cc (Symbol::init_base_undefined): Mark explicitly undefined
symbols as not needing a dynsym entry.
2008-08-28 14:51:04 +00:00
Ian Lance Taylor
af6156ef8d
* options.h (class General_options): Define -n/--nmagic and
...
-N/--omagic.
* options.cc (General_options::finalize): For -n/--nmagic or
-N/--omagic, set -static.
* layout.cc (Layout::attach_allocated_section_to_segment): If
-N/--omagic, don't put read-only and read-write sections in
different segments.
(Layout::find_first_load_seg): If -N/--omagic, don't insist on
finding a read-only segment.
(Layout::set_segment_offsets): If -N/--omagic or -n/--nmagic,
don't set the minimum segment alignment to the common page size,
and don't set the file offset to the address modulo the page size.
* script-sections.cc (Script_sections::create_segments): If
-n/--omagic, don't put read-only and read-write sections in
different segments.
2008-07-22 23:01:20 +00:00
Ian Lance Taylor
62b01cb503
elfcpp/:
...
* dwarf.h (enum DW_FORM): Define.
gold/:
* reduced_debug_output.cc: New file.
* reduced_debug_output.h: New file.
* options.h (class General_optoins): Add --strip-debug-non-line.
* options.cc (General_options::finalize): Add strip_debug_non_line
to the strip heirarchy.
* layout.h (class Layout): Add debug_abbrev_ and debug_info_
fields.
* layout.cc: Include "reduced_debug_output.h".
(Layout::Layout): Initialize new fields.
(line_only_debug_sections): New static array.
(is_lines_only_debug_sections): New static inline function.
(Layout::include_section): Handle --strip-debug-non-line.
(Layout::make_output_section): If --strip-debug-non-line, build
new output sections for .debug_abbrev and .debug_info.
* dwarf_reader.cc (read_unsigned_LEB_128): Move to namespace
gold. Warn about possible overflow.
(read_signed_LEB_128): Likewise.
* dwarf_reader.h: (read_unsigned_LEB_128): Declare.
(read_signed_LEB_128): Declare.
* Makefile.am (CCFILES): Add reduced_debug_output.cc.
(HFILES): Add reduced_debug_output.h.
* Makefile.in: Rebuild.
2008-05-28 20:48:16 +00:00
Ian Lance Taylor
7d9e3d9854
* mapfile.cc: New file.
...
* mapfile.h: New file.
* options.h (class General_options): Add -M/--print-map and -Map.
* options.cc (General_options::finalize): Make -M equivalent to
-Map -.
* main.cc: Include <cstdio> and "mapfile.h".
(main): Open mapfile if requested.
* gold.cc (class Middle_runner): Add mapfile_ field. Update
constructor. Change caller.
(queue_initial_tasks): Add mapfile parameter. Change caller.
(queue_middle_tasks): Likewise.
* gold.h (queue_initial_tasks, queue_middle_tasks): Update
declarations.
* archive.cc: Include "mapfile.h".
(Archive::add_symbols): Add mapfile parameter. Change all
callers. Pass mapfile, symbol, and reason to include_member.
(Archive::include_all_members): Add mapfile parameter. Change all
callers.
(Archive::include_member): Add mapfile, sym, and why parameters.
Change all callers. Report inclusion to map file.
* archive.h: Include "fileread.h".
(class Archive): Update declarations.
(Archive::file): New const method.
(class Add_archive_symbols): Add mapfile_ field. Update
constructor. Change all callers.
* readsyms.h (class Read_symbols): Likewise.
(class Finish_group): Likewise.
(class Read_script): Likewise.
* common.cc: Include "mapfile.h".
(Symbol_table::allocate_commons): Add mapfile parameter. Change
all callers.
(Symbol_table::do_allocate_commons): Likewise.
(Symbol_table::do_allocate_commons_list): Likewise. Report common
symbol allocation to mapfile.
* common.h (class Allocate_commons_task): Add mapfile_ field.
Update constructor. Change all callers.
* symtab.h (class Symbol_table): Update declarations.
* layout.cc: Include "mapfile.h".
(Layout_task_runner::run): Print information to mapfile.
(Layout::create_gold_note): Change Output_data_fixed_space to
Output_data_zero_fill.
(Layout::create_build_id): Likewise.
(Layout::print_to_mapfile): New function.
* layout.h (class Layout_task_runner): Add mapfile_ field. Update
constructor. Change caller.
(class Layout): Declare print_to_mapfile.
* output.cc (Output_section::Input_section::print_to_mapfile): New
function.
(Output_section::add_input_section): If producing a map, always
add to input_sections_ list.
(Output_section::do_print_to_mapfile): New function.
(Output_segment::print_sections_to_mapfile): New function.
(Output_segment::print_section_list_to_mapfile): New function.
* output.h: Include "mapfile.h".
(Output_data::print_to_mapfile): New function.
(Output_data::do_print_to_mapfile): New virtual function.
(Output_segment_headers::do_print_to_mapfile): New function.
(Output_file_header::do_print_to_mapfile): New function.
(Output_data_const::do_print_to_mapfile): New function.
(class Output_data_const_buffer): Add map_name_ field. Update
constructor. Change all callers. Add do_print_to_mapfile
function.
(class Output_data_fixed_space): Likewise.
(class Output_data_space): Likewise.
(class Output_data_zero_fill): New class.
(Output_data_strtab::do_print_to_mapfile): New function.
(Output_data_reloc_base::do_print_to_mapfile): New function.
(Output_relocatable_relocs::do_print_to_mapfile): New function.
(Output_data_group::do_print_to_mapfile): New function.
(Output_data_got::do_print_to_mapfile): New function.
(Output_data_dynamic::do_print_to_mapfile): New function.
(Output_symtab_xindex::do_print_to_mapfile): New function.
(class Output_section): Declare do_print_to_mapflie. Declare
print_to_mapfile in Input_section.
(class Output_segment): Declare new functions.
* object.h (Sized_relobj::symbol_count): New function.
* script-sections.cc
(Output_section_element_dot_assignment::set_section_addresses):
Change Output_data_fixed_space to Output_data_zero_fill.
(Output_data_expression::do_print_to_mapfile): New function.
* script.cc (read_input_script): Add mapfile parameter. Change
all callers.
* script.h (read_input_script): Update declaration.
* ehframe.h (Eh_frame_hdr::do_print_to_mapfile): New function.
(Eh_frame::do_print_to_mapfile): New function.
* merge.h (Output_merge_data::do_print_to_mapfile): New function.
(Output_merge_string::do_print_to_mapfile): New function.
* i386.cc (Output_data_plt_i386::do_print_to_mapfile): New
function.
* sparc.cc (Output_data_plt_sparc::do_print_to_mapfile): New
function.
* x86_64.cc (Output_data_plt_x86_64::do_print_to_mapfile): New
function.
* Makefile.am (CCFILES): Add mapfile.cc.
(HFILES): Add mapfile.h.
* Makefile.in: Rebuild.
2008-05-21 21:37:44 +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
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
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
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
04bf70729d
PR gold/5986
...
Fix problems building gold with gcc 4.3.0.
* gold.h (TEMPLATE_ATTRIBUTE_PRINTF_4): Define.
(gold_error_at_location, gold_warning_at_location): Use it.
* configure.ac: Check whether we can compile and use a template
function with a printf attribute.
* x86_64.cc (Target_x86_64::do_code_fill): Swap out a 32-bit value
when jumping over bytes.
* object.cc: Instantiate Object::read_section_data.
* debug.h: Include <cstring>
* dwarf_reader.cc: Include <algorithm>
* main.cc: Include <cstring>.
* options.cc: Include <cstring>.
* output.cc: Include <cstring>.
* script.cc: Include <cstring>.
* script.h: Include <string>.
* symtab.cc: Include <cstring> and <algorithm>.
* target-select.cc: Include <cstring>.
* version.cc: Include <string>.
* testsuite/testmain.cc: Include <cstdlib>.
* configure, config.in: Rebuild.
2008-03-26 23:36:46 +00:00
Ian Lance Taylor
819d6c3aea
* options.cc: Include "../bfd/bfdver.h".
...
(options::help): Print bug reporting address.
2008-03-25 23:48:25 +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
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
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
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
6a74a71947
Initial -r support.
2008-02-06 08:13:50 +00:00
Ian Lance Taylor
494e05f440
Parse a SECTIONS clause in a linker script.
2008-01-23 01:31:13 +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
2dd3e587bd
Report linker script errors with line numbers. Ignore OUTPUT_FORMAT
...
with three arguments, and ignore OUTPUT_ARCH.
2008-01-07 05:19:02 +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
bc2c67ffde
From Craig Silverstein: Fix error message, add this->.
2007-12-08 03:05:27 +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
9a2d698415
Add heuristics for undefined symbol warnings.
2007-11-14 16:53:25 +00:00
Ian Lance Taylor
1ce71f59c7
Default to --allow-shlib-undefined for now.
2007-11-14 09:39:13 +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
cd4662c7e4
Fix exit status.
2007-10-15 03:33:03 +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
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
8486ee48e8
Add --version option.
2007-10-07 18:06:27 +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
bae7f79e03
Initial CVS checkin of gold
2006-08-04 23:10:59 +00:00