aboutsummaryrefslogtreecommitdiff
path: root/gold/script.cc
AgeCommit message (Collapse)AuthorFilesLines
2008-08-13 * layout.cc (Layout::attach_allocated_section_to_segment): Don'tIan Lance Taylor1-0/+28
set tls_segment_ or relro_segment_. (Layout::make_output_segment): Set tls_segment_ and relro_segment_ when appropriate. * output.h (Output_section::clear_is_relro): New function. * output.cc (Output_segment::add_output_section): Handle SHF_TLS sections specially even when output_data_ is empty. (Output_segment::maximum_alignment): When first section is relro, only force alignment for PT_LOAD segments. * script.cc (script_data_segment_align): New function. (script_data_segment_relro_end): New function. * script-c.h (script_data_segment_align): Declare. (script_data_segment_relro_end): Declare. * script-sections.h (class Script_sections): Declare data_segment_align and data_segment_relro_end. Add fields segment_align_index_ and saw_relro_end_. * script-sections.cc (class Sections_element): Add set_is_relro virtual function. Add new bool* parameter to place_orphan_here. Add get_output_section virtual function. (class Output_section_definition): Add set_is_relro. Add new bool* parameter to place_orphan_here. Add get_output_section. Add is_relro_ field. (Output_section_definition::Output_section_definition): Initialize evaluated_address_, evaluated_load_address, evaluated_addralign_, and is_relro_ fields. (Output_section_definition::place_orphan_here): Add is_relro parameter. (Output_section_definition::set_section_addresses): Set relro for output section. (Output_section_definition::alternate_constraint): Likewise. (class Orphan_output_section): Add new bool* parameter to place_orphan_here. Add get_output_section. (Orphan_output_section::place_orphan_here): Add is_relro parameter. (Script_sections::Script_sections): Initialize data_segment_align_index_ and saw_relro_end_. (Script_sections::data_segment_align): New function. (Script_sections::data_segment_relro_end): New function. (Script_sections::place_orphan): Set or clear is_relro. (Script_sections::set_section_addresses): Force alignment of first TLS section. * yyscript.y (exp): Call script_data_segment_align and script_data_segment_relro_end. * testsuite/relro_script_test.t: New file. * testsuite/relro_test.cc (using_script): Declare. (t1, t2): Test using_script. * testsuite/Makefile.am (check_PROGRAMS): Add relro_script_test. (relro_script_test_SOURCES): Define. (relro_script_test_DEPENDENCIES): Define. (relro_script_test_LDFLAGS): Define. (relro_script_test_LDADD): Define. (relro_script_test.so): New target. * testsuite/Makefile.in: Rebuild.
2008-07-29 * script.cc (Script_options::finalize_symbols): Finalize SECTIONSIan Lance Taylor1-2/+6
symbols before other symbols. * testsuite/script_test_2.cc (test_addr): Declare. (test_addr_alias): Declare. (main): Check that test_addr and test_addr_alias have the right values. * testsuite/script_test_2.t: Define test_addr_alias and test_addr.
2008-07-23 PR 6647Ian Lance Taylor1-8/+19
* script.cc (Version_script_info::get_versions): Don't add empty version tag to return value. (Version_script_info::get_symbol_version_helper): Change return type to bool. Add pversion parameter. Change all callers. (script_register_vers_node): Don't require a non-NULL tag. * script.h (class Version_script_info): Update declarations. (Version_script_info::get_symbol_version): Change return type to bool. Add version parameter. Change all callers. * symtab.cc (Sized_symbol::add_from_relobj): Rework version handling. Handle an empty version from a version script. (Symbol_table::define_special_symbol): Likewise. * testsuite/ver_test_10.script: New file. * testsuite/ver_test_10.sh: New file. * testsuite/Makefile.am (check_SCRIPTS): Add ver_test_10.sh. (check_DATA): Add ver_test_10.syms. (ver_test_10.syms, ver_test_10.so): New target. * testsuite/Makefile.in: Rebuild.
2008-06-302008-06-30 Craig Silverstein <csilvers@cs.stanford.edu>Craig Silverstein1-2/+2
* script.cc (Lex::can_continue_name): Make '?' allowable in version-script names. * testsuite/version_script.map: Change glob pattern to use '?'
2008-05-21 * mapfile.cc: New file.Ian Lance Taylor1-2/+2
* 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-03-26 PR gold/5986Ian Lance Taylor1-2/+3
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-04From Craig Silverstein: rework option handling to make it easier toIan Lance Taylor1-1/+1
add a new option.
2008-03-04From Craig Silverstein: rename some option functions in preparationIan Lance Taylor1-2/+2
for reworking option handling.
2008-02-28Support -d/--define-common.Ian Lance Taylor1-0/+9
2008-02-28Read input scripts which look like input objects with properIan Lance Taylor1-60/+12
serialization.
2008-02-28Don't check assertions until symbols are finalized. Create an outputIan Lance Taylor1-4/+14
section if the script uses a data statement with no input sections. Don't create a loadable segment for the headers if there is no room.
2008-02-28From Craig Silverstein: Have Parameters point to General_options.Ian Lance Taylor1-5/+5
2008-02-27Fix handling of ENTRY in linker script.Ian Lance Taylor1-1/+1
2008-02-26From Craig Silverstein: rework handling of Script_options.Ian Lance Taylor1-4/+9
2008-02-26From Craig Silverstein: rename option functions for future optionIan Lance Taylor1-4/+4
handling rewrite.
2008-02-13Assignments in linker scripts override definitions from object files.Ian Lance Taylor1-1/+6
2008-02-09Track sections for expressions.Ian Lance Taylor1-22/+22
2008-02-08Don't read linker scripts in binary mode.Ian Lance Taylor1-2/+5
2008-02-07Ignore version scripts for relocatable links.Ian Lance Taylor1-0/+9
2008-02-07Implement --just-symbols, including -R FILE. Fix symbol values whenIan Lance Taylor1-2/+2
doing a relocatable link.
2008-02-04Implement PHDRS.Ian Lance Taylor1-2/+59
2008-02-04Implement SIZEOF_HEADERS, section constraints, other minor linkerIan Lance Taylor1-1/+22
script items.
2008-02-04Fully implement the SECTIONS clause.Ian Lance Taylor1-14/+126
2008-01-26Don't pass around the target in order to define symbols; get it fromIan Lance Taylor1-6/+4
the parameters instead.
2008-01-23Parse a SECTIONS clause in a linker script.Ian Lance Taylor1-190/+551
2008-01-18From Craig Silverstein: Handle quoted strings differently in versionIan Lance Taylor1-13/+36
scripts, and handle extern "C++" in the middle of a block.
2008-01-15From Andrew Chatham and Craig Silverstein: Add support for versionIan Lance Taylor1-55/+420
scripts.
2008-01-09Support assignments and expressions in linker scripts.Ian Lance Taylor1-192/+382
2008-01-07Report linker script errors with line numbers. Ignore OUTPUT_FORMATIan Lance Taylor1-2/+12
with three arguments, and ignore OUTPUT_ARCH.
2008-01-06Add support for -e and for ENTRY in linker scripts.Ian Lance Taylor1-3/+29
2007-12-14Rewrite workqueue. This version eliminates the master thread, andIan Lance Taylor1-18/+21
reduces the amount of locking required to find a new thread to run.
2007-11-22Add threading support.Ian Lance Taylor1-0/+4
2007-10-30From Craig Silverstein: Implement OPTION in linker scripts.Ian Lance Taylor1-5/+33
2007-10-29From Craig Silverstein: Remove extraneous comment.Ian Lance Taylor1-4/+0
2007-10-27From Craig Silverstein and Ian Lance Taylor: Process --script option.Ian Lance Taylor1-0/+45
2007-10-26From Craig Silverstein: preliminary support for OPTION in linker script.Ian Lance Taylor1-0/+10
2007-10-14Remove extraneous newlines.Ian Lance Taylor1-1/+1
2007-10-14Run all error handling through an Errors object. Delete output fileIan Lance Taylor1-3/+1
on error.
2007-10-04Full support for --sysroot.Ian Lance Taylor1-10/+46
2007-10-02From Craig Silverstein: add support for searching for input filesIan Lance Taylor1-14/+8
named in linker scripts.
2007-09-25Rework File_read interface. Get file size. Use pread whenIan Lance Taylor1-6/+10
available.
2007-09-25Break out default pbytes argument to read and get_view routines,Ian Lance Taylor1-1/+1
adding new routines.
2007-09-24From Craig Silverstein: Fix bug when reading large script files.Ian Lance Taylor1-0/+1
2007-09-22Add licensing text to every source file.Ian Lance Taylor1-0/+20
2007-08-21Make relative references in linker scripts absolute and update achatham1-1/+14
comment about relocate() being called.
2006-11-29Hash tables, dynamic section, i386 PLT, gold_assert.Ian Lance Taylor1-7/+12
2006-11-14More dynamic object support, initial scripting support.Ian Lance Taylor1-0/+1188