OSDN Git Service
Alan Modra [Sun, 18 Oct 2009 23:11:35 +0000 (23:11 +0000)]
PR binutils/10792
* dlltool.c (dll_name_list_append): Declare variable at start
of block.
(dll_name_list_count, dll_name-list_print): Likewise.
Alan Modra [Sun, 18 Oct 2009 23:00:04 +0000 (23:00 +0000)]
daily update
Alan Modra [Sun, 18 Oct 2009 13:33:19 +0000 (13:33 +0000)]
* as.h (know): Don't define as empty.
* config/tc-arm.c (make_mapping_symbol): Revert last patch.
Alan Modra [Sun, 18 Oct 2009 08:20:16 +0000 (08:20 +0000)]
* config/tc-arm.c (make_mapping_symbol): Add braces to avoid empty body
in release builds.
Alan Modra [Sun, 18 Oct 2009 07:43:03 +0000 (07:43 +0000)]
Exclude more aout targets.
Alan Modra [Sat, 17 Oct 2009 23:00:05 +0000 (23:00 +0000)]
daily update
Arnold Metselaar [Sat, 17 Oct 2009 18:23:12 +0000 (18:23 +0000)]
* z80.h: Store alignment requirement in section header, to allow
ld to preserve alignment. Some code was copied from ti.h.
Doug Evans [Sat, 17 Oct 2009 17:38:09 +0000 (17:38 +0000)]
* Makefile.am (CGEN_CPUS): Add iq2000, lm32.
(FR30_DEPS, FRV_DEPS, IQ2000_DEPS): Move so all cgen *_DEPS are
sorted alphabetically.
(stamp-fr30, stamp-frv, stamp-iq2000, stamp-xc16x): Move so all cgen
stamp-* rules are sorted alphabetically.
* Makefile.in: Regenerate.
Arnold Metselaar [Sat, 17 Oct 2009 17:18:27 +0000 (17:18 +0000)]
* coff-z80.c (z80coff_vec): Allow sections to be of type SEC_CODE or SEC_DATA
* ld-scripts/align.exp: Remove xfails for z80-*-coff
Doug Kwan [Fri, 16 Oct 2009 23:07:23 +0000 (23:07 +0000)]
2009-10-16 Doug Kwan <dougkwan@google.com>
* elfcpp/elfcpp.h (DT_PREINIT_ARRAY): Correct enum value.
Alan Modra [Fri, 16 Oct 2009 23:00:04 +0000 (23:00 +0000)]
daily update
Doug Kwan [Fri, 16 Oct 2009 19:11:32 +0000 (19:11 +0000)]
2009-10-16 Doug Kwan <dougkwan@google.com>
* dynobj.cc (Versions::Versions): Initialize version_script_.
Only insert base version symbol definition for a shared object
if version script defines any version versions.
(Versions::define_base_version): New method definition.
(Versions::add_def): Check that base version is not needed.
(Versions::add_need): Define base version lazily.
* dynobj.h (Versions::define_base_version): New method declaration.
(Versions::needs_base_version_): New data member declaration.
* testsuite/Makefile.am (check_SCRIPTS): Add no_version_test.sh
(check_DATA): Add no_version_test.stdout.
(libno_version_test.so, no_version_test.o no_version_test.stdout):
New make rules.
* testsuite/Makefile.in: Regenerate.
* testsuite/no_version_test.c: New file.
* testsuite/no_version_test.sh: Ditto.
Doug Kwan [Fri, 16 Oct 2009 18:56:06 +0000 (18:56 +0000)]
2009-10-16 Doug Kwan <dougkwan@google.com>
* expression.cc (class Segment_start_expression): New class definition.
(Segment_start_expression::value): New method definition.
(script_exp_function_segment_start): Return a new
Segment_start_expression.
* gold/script-c.h (script_saw_segment_start_expression): New function
prototype.
* script-sections.cc (Script_sections::Script_sections): Initialize
SAW_SEGMENT_START_EXPRESSION_ to false.
(Script_sections::set_section_addresses): Use -Ttext, -Tdata
and -Tbbs options to specify section addresses if given in
command line and no SEGMENT_START expression is seen in a script.
* script-sections.h (Script_sections::saw_segment_start_expression,
Script_sections::set_saw_segment_start_expression): New method
definition.
(Script_sections::saw_segment_start_expression_): New data member
declaration.
* script.cc (script_saw_segment_start_expression): New function.
* yyscript.y (SEGMENT_START): Call script_saw_segment_start_expression.
* testsuite/Makefile.am (check_SCRIPTS): Add script_test_6.sh,
script_test_7.sh and script_test_8.sh.
(check_DATA): Add script_test_6.stdout, script_test_7.stdout and
script_test_8.stdout.
(MOSTLYCLEANFILES): Add script_test_6, script_test_7 and script_test_8.
(script_test_6, script_test_6.stdout, script_test_7,
script_test_7.stdout, script_test_8, script_test_8.stdout): New rules.
* Makefile.in: Regenerate.
* testsuite/script_test_6.sh: New file.
* testsuite/script_test_6.t: Same.
* testsuite/script_test_7.sh: Same.
* testsuite/script_test_7.t: Same.
* testsuite/script_test_8.sh: Same.
Doug Kwan [Fri, 16 Oct 2009 18:34:53 +0000 (18:34 +0000)]
2009-10-16 Doug Kwan <dougkwan@google.com>
* output.cc (Output_segment::set_section_list_address): Cast
expressions to unsigned long long type to avoid format warnings.
Doug Evans [Fri, 16 Oct 2009 18:23:43 +0000 (18:23 +0000)]
* MAINTAINERS: Add myself as m32r maintainer.
H.J. Lu [Fri, 16 Oct 2009 16:33:14 +0000 (16:33 +0000)]
2009-10-16 H.J. Lu <hongjiu.lu@intel.com>
PR gas/10775
* doc/c-i386.texi: Mention the 8 extra control registers for
x86-64.
Mention .code64 directive.
H.J. Lu [Fri, 16 Oct 2009 15:50:51 +0000 (15:50 +0000)]
2009-10-16 H.J. Lu <hongjiu.lu@intel.com>
* i386-opc.h: Use enum instead of nested macros.
Nick Clifton [Fri, 16 Oct 2009 15:15:38 +0000 (15:15 +0000)]
* emultempl/pe.em (OPTION_EXCLUDE_ALL_SYMBOLS): New macro.
(gld${EMULATION_NAME}_add_options): Add new --exclude-all-symbols option
to exclude all symbols from automatic export.
(gld_${EMULATION_NAME}_list_options): Describe it.
(gld${EMULATION_NAME}_handle_option): Handle it.
* emultempl/pep.em: Likewise to all the above.
* pe-dll.c (pe_dll_exclude_all_symbols): New variable.
(process_def_file_and_drectve): Use it.
* pe-dll.h (pe_dll_exclude_all_symbols): Declare.
* pep-dll.c (pep_dll_exclude_all_symbols): Define pep_ alias.
* pep-dll.h (pe_dll_exclude_all_symbols): Declare.
* NEWS: Mention the new feature.
* ld.texinfo: Document the new command line switch.
H.J. Lu [Fri, 16 Oct 2009 14:47:08 +0000 (14:47 +0000)]
2009-10-16 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c: Simplify enums.
Nick Clifton [Fri, 16 Oct 2009 14:08:58 +0000 (14:08 +0000)]
PR 10764
* Makefile.am (sysinfo.o, syslex.o): Place source file after all
command line switches.
* Makefile.in: Regenerate.
Nick Clifton [Fri, 16 Oct 2009 14:02:55 +0000 (14:02 +0000)]
PR 10768
* dlltool.c (bfd_get_errmsg): New macro.
(scan_obj_file): Use it.
(make_one_lib_file): Use it.
(make_head): Use it.
(make_delay_head): Use it.
(make_tail): Use it.
(gen_lib_file): Use it.
(identify_dll_for_implib): Use it.
(identify_search_archive): Use it.
Nick Clifton [Fri, 16 Oct 2009 10:32:51 +0000 (10:32 +0000)]
* bootstrap.exp: Detect if plugins are enabled. Skip the static
link test and add -ldl to the remaining tests if they are.
Nick Clifton [Fri, 16 Oct 2009 10:05:06 +0000 (10:05 +0000)]
* readelf.c (usage): Add mention of --debug-dump=frames-interp.
Wrap output to 80 columns.
* objdump.c (usage): Likewise.
* doc/binutils.texi (readelf): Add note about =frames-interp.
Alan Modra [Fri, 16 Oct 2009 07:14:42 +0000 (07:14 +0000)]
PR binutils/10785
* coff-alpha.c (alpha_ecoff_get_elt_at_filepos): Don't bfd_alloc
bim and bim->buffer. bfd_malloc instead.
* peicode.h (pe_ILF_build_a_bfd): Similarly.
(ILF_DATA_SIZE): Don't include bim.
* opncls.c (bfd_close): Test bim->buffer non-NULL before freeing.
Ian Lance Taylor [Fri, 16 Oct 2009 05:19:06 +0000 (05:19 +0000)]
* script.cc (Script_options::add_symbol_assignment): Always add a
dot assginment to script_sections_.
* script-sections.cc (Script_sections::add_dot_assignment):
Initialize if necessary.
Ian Lance Taylor [Fri, 16 Oct 2009 05:16:09 +0000 (05:16 +0000)]
* layout.cc (Layout::relaxation_loop_body): Don't crash if we see
program headers with no load segment if there is a linker script.
Ian Lance Taylor [Fri, 16 Oct 2009 05:00:28 +0000 (05:00 +0000)]
* layout.cc (Layout::set_segment_offsets): Align the file offset
to the segment aligment for -N or -n with no load segment.
* output.cc (Output_segment::add_output_section): Don't crash if
the first section is a TLS section.
(Output_segment::set_section_list_addresses): Print an error
message if the address moves backward in a linker script.
* script-sections.cc
(Output_section_element_input::set_section_addresses): Don't
increase *dot_value for a SHF_TLS/SHT_NOBITS section.
(Orphan_output_section::set_section_addresses): Likewise.
Alan Modra [Thu, 15 Oct 2009 23:00:04 +0000 (23:00 +0000)]
daily update
H.J. Lu [Thu, 15 Oct 2009 22:50:08 +0000 (22:50 +0000)]
2009-10-15 H.J. Lu <hongjiu.lu@intel.com>
Ineiev <ineiev@gmail.com>
PR binutils/10767
* i386-dis.c: Use enum instead of nested macros.
H.J. Lu [Thu, 15 Oct 2009 22:26:55 +0000 (22:26 +0000)]
2009-10-15 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (MAX_BYTEMODE): Removed.
Doug Kwan [Thu, 15 Oct 2009 18:17:48 +0000 (18:17 +0000)]
2009-10-15 Doug Kwan <dougkwan@google.com>
* layout.cc (Layout::finish_dynamic_section): Generate tags
DT_FINI_ARRAY, DT_FINI_ARRAYSZ, DT_INIT_ARRAY, DT_INIT_ARRAYSZ,
DT_PREINIT_ARRAY, DT_PREINIT_ARRAYSZ as needed. If -Bsymbolic is
used, add DT_SYMBOLIC and set DF_SYMBOLIC in DT_FLAGS.
DJ Delorie [Thu, 15 Oct 2009 17:03:34 +0000 (17:03 +0000)]
merge from gcc
Alan Modra [Thu, 15 Oct 2009 10:58:34 +0000 (10:58 +0000)]
PR gas/1491
gas/
* macro.c: Delete unnecessary function declarations.
(buffer_and_nest): Support multiple labels per line for
LABELS_WITHOUT_COLONS targets if the labels do have colons.
(free_macro): Move so that we don't need forward declaration.
* read.c (read_a_source_file): Take a copy of macro expansion line
before we trim labels.
* listing.c (listing_newline): Adjust stdin line save for
input_line_pointer still at start of line.
gas/testsuite/
* gas/macros/dot.s: Don't start macro invocations is first column.
* gas/macros/dot.l: Update.
* gas/macros/macros.exp: Run dot test on more targets.
Tristan Gingold [Thu, 15 Oct 2009 09:41:35 +0000 (09:41 +0000)]
2009-10-15 Jim Blandy <jimb@red-bean.com>
* libgnuintl.h (_INTL_MAY_RETURN_STRING_ARG, gettext, dgettext)
(dcgettext, ngettext, dngettext, dcngettext): Backport changes
from current gettext to provide GCC format_arg attributes.
Ian Lance Taylor [Thu, 15 Oct 2009 00:33:18 +0000 (00:33 +0000)]
* object.h (class Relocate_info): Add reloc_shdr and data_shdr
fields.
* object.cc (Sized_relobj::relocate_sections): Set reloc_shdr and
data_shdr fields of relinfo.
* i386.cc (class Target_i386::Relocate): Remove ldo_addrs_ field.
(Target_i386::Relocate::relocate_tls): Don't call fix_up_ldo. For
R_386_TLS_LDO_32, adjust based on section flags.
(Target_i386::Relocate::fix_up_ldo): Remove.
Joseph Myers [Wed, 14 Oct 2009 23:12:15 +0000 (23:12 +0000)]
* ld-scripts/phdrs3.d: Allow colon in name of linker binary.
Alan Modra [Wed, 14 Oct 2009 23:00:04 +0000 (23:00 +0000)]
daily update
Alan Modra [Wed, 14 Oct 2009 11:30:20 +0000 (11:30 +0000)]
PR 969
* m68k-opc.c (m68k_opcodes): Correct mask for macl and msacl.
Andreas Schwab [Wed, 14 Oct 2009 10:54:27 +0000 (10:54 +0000)]
* ldlex.l (yy_input): Remove second argument and return the value
instead.
(YY_INPUT): Adjust.
Alan Modra [Wed, 14 Oct 2009 10:52:54 +0000 (10:52 +0000)]
* ld-elf/pr349-1.s, * ld-elf/pr349-2.s, * ld-elf/pr349.d: New.
Alan Modra [Wed, 14 Oct 2009 05:54:28 +0000 (05:54 +0000)]
include/
* bfdlink.h (enum bfd_link_common_skip_ar_symbols): Rename from
bfd_link_common_skip_ar_aymbols.
(struct bfd_link_info): Here too.
bfd/
* aoutx.h (aout_link_check_ar_symbols): Typo fix.
ld/
* emultempl/netbsd.em (gldnetbsd_before_parse): Typo fix.
Ian Lance Taylor [Wed, 14 Oct 2009 05:25:01 +0000 (05:25 +0000)]
Add support for -pie.
* options.h (class General_options): Add -pie and
--pic-executable.
(General_options::output_is_position_independent): Test -pie.
(General_options::output_is_executable): Return true if not shared
and not relocatable.
(General_options::output_is_pie): Remove.
* options.cc (General_options::finalize): Reject incompatible uses
of -pie.
* gold.cc (queue_middle_tasks): A -pie link is not static.
* symtab.h (Symbol::needs_plt_entry): Return false if -pie.
* symtab.cc (Symbol::final_value_is_known): Return false if
output_is_position_independent.
* layout.cc (Layout::set_segment_offsets): Start at address 0 if
output_is_position_independent.
* output.cc (Output_file_header::do_sized_write): Use ET_DYN if
output_is_position_independent.
* i386.cc (Output_data_plt_i386::do_write): Use the PIC PLT if
output_is_position_independent.
* testsuite/Makefile.am (check_PROGRAMS): Add basic_pie_test and
two_file_pie_test.
(basic_pie_test.o, basic_pie_test): New targets.
(two_file_test_1_pie.o, two_file_test_1b_pie.o): New targets.
(two_file_test_2_pie.o, two_file_test_main_pie.o): New targets.
(two_file_pie_test): New target.
* testsuite/Makefile.in: Rebuild.
* README: Remove note saying that -pie is not supported.
Alan Modra [Wed, 14 Oct 2009 01:48:53 +0000 (01:48 +0000)]
* ldlang.c (load_symbols): Set whole_archive from entry when
parsing a linker script.
Alan Modra [Tue, 13 Oct 2009 23:00:04 +0000 (23:00 +0000)]
daily update
Ian Lance Taylor [Tue, 13 Oct 2009 21:23:00 +0000 (21:23 +0000)]
* options.h (class General_options): Add -init and -fini.
* layout.cc (Layout::finish_dynamic_section): Emit
given init and fini functions.
Sriraman Tallam [Tue, 13 Oct 2009 21:17:42 +0000 (21:17 +0000)]
* gc.h (gc_process_relocs): Check if icf is enabled using new
function.
* gold.cc (queue_initial_tasks): Likewise.
(queue_middle_tasks): Likewise.
* object.cc (do_layout): Likewise.
* symtab.cc (is_section_folded): Likewise.
* main.cc (main): Likewise.
* reloc.cc (Read_relocs::run): Likewise.
(Sized_relobj::do_scan_relocs): Likewise.
* icf.cc (is_function_ctor_or_dtor): New function.
(Icf::find_identical_sections): Check if function is ctor or dtor when
safe icf is chosen.
* options.h (General_options::icf): Change option to be an enum.
(Icf_status): New enum.
(icf_enabled): New method.
(icf_safe_folding): New method.
(set_icf_status): New method.
(icf_status_): New variable.
* (options.cc) (General_options::finalize): Set icf_status_.
* testsuite/Makefile.am: Add commands to build icf_safe_test. Modify
icf_test and icf_keep_unique_test to use the --icf enum flag.
* testsuite/icf_safe_test.sh: New file.
* testsuite/icf_safe_test.cc: New file.
H.J. Lu [Tue, 13 Oct 2009 18:44:19 +0000 (18:44 +0000)]
2009-10-13 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (print_insn): Always clear need_vex, need_vex_reg
and vex_w_done.
H.J. Lu [Tue, 13 Oct 2009 16:43:39 +0000 (16:43 +0000)]
Fix a typo.
H.J. Lu [Tue, 13 Oct 2009 16:42:39 +0000 (16:42 +0000)]
2009-10-13 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/10766
* config/tc-i386.c (build_modrm_byte): Declare exp earlier.
H.J. Lu [Tue, 13 Oct 2009 16:37:37 +0000 (16:37 +0000)]
2009-10-13 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/10763
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Declare plt
earlier.
H.J. Lu [Tue, 13 Oct 2009 16:23:24 +0000 (16:23 +0000)]
gas/
2009-10-13 H.J. Lu <hongjiu.lu@intel.com>
PR gas/10740
* config/tc-i386-intel.c (i386_intel_operand): Handle call
and jump with 2 immediate operands.
* config/tc-i386.c (i386_finalize_immediate): Don't generate
error message if operand string is NULL.
gas/testsuite/
2009-10-13 H.J. Lu <hongjiu.lu@intel.com>
PR gas/10740
* gas/i386/jump.s: Add new tests.
* gas/i386/jump16.s: Likewise.
* gas/i386/jump.d: Updated.
* gas/i386/jump16.d: Likewise.
Nick Clifton [Tue, 13 Oct 2009 08:55:30 +0000 (08:55 +0000)]
gas:
2009-10-07 Vincent Riviere <vincent.riviere@freesbee.fr>
PR gas/3041
* config/tc-m68k.c (tc_gen_reloc): Fix addend for relocations
located in data section an referencing a weak symbol.
gas/testsuite:
2009-10-07 Vincent Riviere <vincent.riviere@freesbee.fr>
PR gas/3041
* gas/m68k/all.exp: Added "p3041data".
* gas/m68k/p3041.d, gas/m68k/p3041.s: Added tests of weak references
from text section to all possible sections.
* gas/m68k/p3041data.d, gas/m68k/p3041data.s: New test. Check weak
references from data section.
Alan Modra [Tue, 13 Oct 2009 04:06:20 +0000 (04:06 +0000)]
* elflink.c (_bfd_elf_merge_symbol): Revert previous patch.
Ralf Wildenhues [Tue, 13 Oct 2009 03:32:18 +0000 (03:32 +0000)]
Fix toplevel 'config.status --recheck' for --enable-lto.
/:
* configure.ac: Add 'lto' to enable_languages, not
new_enable_languages, and only if not already present.
* configure: Regenerate.
Roland McGrath [Tue, 13 Oct 2009 02:35:08 +0000 (02:35 +0000)]
Fix %s that should be %B in several message formats.
Sriraman Tallam [Tue, 13 Oct 2009 00:39:31 +0000 (00:39 +0000)]
* symtab.h: Check for GOLD_SYMTAB_H before header includes. Remove
includes to gc.h and icf.h.
* arm.cc: Include gc.h.
* gold.cc: Likewise.
* i386.cc: Likewise.
* powerpc.cc: Likewise.
* sparc.cc: Likewise.
* x86_64.cc: Likewise.
* gc.h: Include icf.h.
Alan Modra [Mon, 12 Oct 2009 23:00:05 +0000 (23:00 +0000)]
daily update
Ian Lance Taylor [Mon, 12 Oct 2009 06:02:06 +0000 (06:02 +0000)]
* plugin.cc: Include "gold.h" before other header files.
Alan Modra [Sun, 11 Oct 2009 23:00:04 +0000 (23:00 +0000)]
daily update
Alan Modra [Sat, 10 Oct 2009 22:59:50 +0000 (22:59 +0000)]
daily update
Chris Demetriou [Sat, 10 Oct 2009 07:39:04 +0000 (07:39 +0000)]
2009-10-10 Chris Demetriou <cgd@google.com>
* options.h (Input_file_argument::Input_file_type): New enum.
(Input_file_argument::is_lib_): Replace with...
(Input_file_argument::type_): New member.
(Input_file_argument::Input_file_argument): Take Input_file_type
'type' rather than boolean 'is_lib' as second argument.
(Input_file_argument::is_lib): Use type_.
(Input_file_argument::is_searched_file): New function.
(Input_file_argument::may_need_search): Handle is_searched_file.
* options.cc (General_options::parse_library): Support -l:filename.
(General_options::parse_just_symbols): Update for Input_file_argument
changes.
(Command_line::process): Likewise.
* archive.cc (Archive::get_file_and_offset): Likewise.
* plugin.cc (Plugin_manager::release_input_file): Likewise.
* script.cc (read_script_file, script_add_file): Likewise.
* fileread.cc (Input_file::Input_file): Likewise.
(Input_file::will_search_for): Handle is_searched_file.
(Input_file::open): Likewise.
* readsyms.cc (Read_symbols::get_name): Likewise.
* testsuite/Makefile.am (searched_file_test): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/searched_file_test.cc: New file.
* testsuite/searched_file_test_lib.cc: New file.
Alan Modra [Sat, 10 Oct 2009 04:58:44 +0000 (04:58 +0000)]
* cofflink.c (_bfd_coff_link_input_bfd): Skip section symbols for
excluded output sections.
Ian Lance Taylor [Sat, 10 Oct 2009 04:56:43 +0000 (04:56 +0000)]
* descriptor.cc: Include <cstdio> and "binary-io.h".
(Descriptors::open): Open the files in binary mode always.
* script.cc (Lex::get_token): Treat \r as whitespace.
Alan Modra [Sat, 10 Oct 2009 04:34:38 +0000 (04:34 +0000)]
Revert 2009-09-28 changes.
Ian Lance Taylor [Sat, 10 Oct 2009 01:24:56 +0000 (01:24 +0000)]
* testsuite/retain_symbols_file_test.sh: Don't test for __tcf_0.
Ian Lance Taylor [Fri, 9 Oct 2009 23:20:44 +0000 (23:20 +0000)]
* configure.ac: Check for readv function also.
* fileread.cc (readv): Define if not HAVE_READV.
* fileread.h (File_read:: max_readv_entries): Set to 1 if readv
does not exist.
* config.in: Regenerate.
* configure: Regenerate.
Doug Kwan [Fri, 9 Oct 2009 23:18:19 +0000 (23:18 +0000)]
2009-10-09 Doug Kwan <dougkwan@google.com>
* layout.cc (Layout::make_output_section): Call target hook to make
ordinary output section.
(Layout::finalize): Adjust parameter list of call the
Target::may_relax().
* layout.h (class Layout::section_list): New method.
* merge.h (Output_merge_base::entsize): Change visibility to public.
(Output_merge_base::is_string, Output_merge_base::do_is_string):
New methods.
(Output_merge_string::do_is_string): New method.
* object.cc (Sized_relobj::do_setup): renamed from
Sized_relobj::set_up.
* object.h (Sized_relobj::adjust_shndx,
Sized_relobj::initializ_input_to_output_maps,
Sized_relobj::free_input_to_output_maps): Change visibilities to
protected.
(Sized_relobj::setup): Virtualize.
(Sized_relobj::do_setup): New method declaration.
(Sized_relobj::invalidate_section_offset,
Sized_relobj::do_invalidate_section_offset): New method decfinitions.
(Sized_relobj::elf_file, Sized_relobj::local_values): New methods.
* options.cc (parse_int): New function.
* options.h (parse_int): New declaration.
(DEFINE_int): New macro.
(stub_group_size): New option.
* output.cc (Output_section::Output_section): Initialize memebers
merge_section_map_, merge_section_by_properties_map_,
relaxed_input_section_map_, is_relaxed_input_section_map_valid_.
(Output_section::add_input_section): Handled deferred code-fill
generation and remove an old comment.
(Output_section::add_relaxed_input_section): New method definition.
(Output_section::add_merge_input_section): Use merge section by
properties map to speed to search. Update merge section maps
as appropriate.
(Output_section::build_relaxation_map): New method definition.
(Output_section::convert_input_sections_in_list_to_relaxed_sections):
Same.
(Output_section::relax_input_section): Renamed to
Output_section::convert_input_sections_to_relaxed_sections and change
interface to take a vector of pointers to relaxed sections.
(Output_section::find_merge_section,
Output_section::find_relaxed_input_section): New method definitions.
(Output_section::is_input_address_mapped,
Output_section::output_offset, Output_section::output_address):
Use output section data maps to speed up searching.
(Output_section::find_starting_output_address): Add comments.
(Output_section::do_write,
Output_section::write_to_postprocessing_buffer): Do code-fill
generation as appropriate.
(Output_section::get_input_sections): Invalidate relaxed input section
map.
(Output_section::restore_states): Adjust type of checkpoint .
Invalidate relaxed input section map.
* output.h (Output_merge_base): New class declaration.
(Input_section_specifier): New class defintion.
(class Output_relaxed_input_section) Change base class to
Output_section_data_build.
(Output_relaxed_input_section::Output_relaxed_input_section): Adjust
base class initializer.
(Output_section::add_relaxed_input_section): New method declaration.
(Output_section::Input_section): Change visibility to protected.
(Output_section::Input_section::relobj,
Output_section::Input_section::shndx): Handle relaxed input sections.
Output_section::input_sections) Change visibility to protected. Also
define overload to return a non-const pointer.
(Output_section::Merge_section_properties): New class defintion.
(Output_section::Merge_section_by_properties_map,
Output_section::Output_section_data_by_input_section_map,
Output_section::Relaxation_map): New types.
(Output_section::relax_input_section): Rename method to
Output_section::convert_input_sections_to_relaxed_sections and change
interface to take a vector of relaxed section pointers.
(Output_section::find_merge_section,
Output_section::find_relaxed_input_section,
Output_section::build_relaxation_map,
Output_section::convert_input_sections_in_list_to_relaxed_sections):
New method declarations.
(Output_section::merge_section_map_
Output_section::merge_section_by_properties_map_,
Output_section::relaxed_input_section_map_,
Output_section::is_relaxed_input_section_map_valid_,
Output_section::generate_code_fills_at_write_): New data members.
* script-sections.cc
(Output_section_element_input::set_section_addresses): Call
current_data_size and addralign methods of relaxed input sections.
(Orphan_output_section::set_section_addresses): Call current_data_size
and addralign methods of relaxed input sections.
* symtab.cc (Symbol_table::compute_final_value): Extract template
from the body of Symbol_table::sized_finalize_symbol.
(Symbol_table::sized_finalized_symbol): Call
Symbol_table::compute_final_value.
* symtab.h (Symbol_table::Compute_final_value_status): New enum type.
(Symbol_table::compute_final_value): New templated method declaration.
* target.cc (Target::do_make_output_section): New method defintion.
* target.h (Target::make_output_section): New method declaration.
(Target::relax): Add more parameters for input objects, symbol table
and layout. Adjust call to do_relax.
(Target::do_make_output_section): New method declaration.
(Target::do_relax): Add parameters for input objects, symbol table
and layout.
Ian Lance Taylor [Fri, 9 Oct 2009 23:10:15 +0000 (23:10 +0000)]
* pread.c: Include stdio.h.
Ian Lance Taylor [Fri, 9 Oct 2009 23:07:30 +0000 (23:07 +0000)]
* plugin.cc: Don't include dlfcn.h when ENABLE_PLUGINS is not
defined.
Ian Lance Taylor [Fri, 9 Oct 2009 23:05:21 +0000 (23:05 +0000)]
* dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info):
Change read_shndx type to unsigned int.
(Sized_dwarf_line_info::read_lines): Change shndx type to unsigned
int.
(Sized_dwarf_line_info::read_line_mappings): Likewise.
* dwarf_reader.h (Sized_dwarf_line_info::Sized_dwarf_line_info):
Change read_shndx type to unsigned int.
(Sized_dwarf_line_info::read_lines): Change shndx type to unsigned
int.
(Sized_dwarf_line_info::read_line_mappings): Likewise.
* layout.cc (Layout::create_symtab_sections): Cast the result of
local_symcount * symsize to off_t in the gold_assert.
Ian Lance Taylor [Fri, 9 Oct 2009 23:02:34 +0000 (23:02 +0000)]
* elfcpp/elfcpp_file.h (Elf_file::section_name): Change shstr_size
to Elf_WXword.
Alan Modra [Fri, 9 Oct 2009 22:59:52 +0000 (22:59 +0000)]
daily update
Ian Lance Taylor [Fri, 9 Oct 2009 22:56:41 +0000 (22:56 +0000)]
* arm.cc (Target_arm::relocate::reloc_is_non_pic): Return true for
R_ARM_THM_ABS5, R_ARM_ABS8, R_ARM_ABS12, R_ARM_ABS16,
R_ARM_BASE_ABS.
(Arm_relocate_functions::abs8): Remove has_thumb_bit parameter.
(Arm_relocate_functions::thm_abs5): New function.
(Arm_relocate_functions::abs12): New function.
(Arm_relocate_functions::abs16): New function.
(Arm_relocate_functions::base_abs): New function.
(Scan::check_non_pic): Handle R_ARM_ABS32_NOI.
(Scan::local): Remove special handling of R_ARM_ABS8. Handle
R_ARM_ABS32_NOI, R_ARM_THM_ABS5, R_ARM_ABS12, R_ARM_ABS16, and
R_ARM_BASE_ABS.
(Scan::global): Likewise.
(Relocate::relocate): Handle R_ARM_ABS12, R_ARM_ABS16,
R_ARM_ABS32_NOI, R_ARM_THM_ABS5, and R_ARM_BASE_ABS.
(Relocatable_size_for_reloc::get_size_for_reloc): Handle
R_ARM_ABS16, R_ARM_THM_ABS5, R_ARM_ABS32_NOI, R_ARM_ABS12, and
R_ARM_BASE_ABS.
Ian Lance Taylor [Fri, 9 Oct 2009 22:45:13 +0000 (22:45 +0000)]
* arm.cc (Arm_relocate_functions::movw_prel_nc): New function.
(Arm_relocate_functions::movt_prel): New function.
(Arm_relocate_functions::thm_movw_prel_nc): New function.
(Arm_relocate_functions::thm_movt_prel): New function.
(Scan::local): Handle R_ARM_MOVW_PREL_NC, R_ARM_MOVT_PREL,
R_ARM_THM_MOVW_PREL_NC, and R_ARM_THM_MOVT_PREL.
(Scan::global, Relocate::relocate): Likewise.
(Relocatable_size_for_reloc::get_size_for_reloc): Likewise.
Ian Lance Taylor [Fri, 9 Oct 2009 22:38:07 +0000 (22:38 +0000)]
elfcpp/:
* elf_file.h: (class Elf_strtab): New class.
gold/:
* gold.cc: (queue_initial_tasks): Pass incremental_inputs to
Incremental_checker.
* incremental.cc: (INCREMENTAL_LINK_VERSION): Change type to
unsigned int.
(class Incremental_inputs_header): New class.
(Incremental_inputs_header_writer): Edit comment.
(Incremental_inputs_entry): New class.
(Incremental_inputs_entry_writer): Edit comment.
(Sized_incremental_binary::do_find_incremental_inputs_section):
Add *strtab_shndx parameter, fill it.
(Sized_incremental_binary::do_check_inputs): New method.
(Incremental_checker::can_incrementally_link_output_file): Use
Sized_incremental_binary::check_inputs.
(Incremental_inputs::report_command_line): Save command line in
command_line_.
* incremental.h:
(Incremental_binary::find_incremental_inputs_section): New
method.
(Incremental_binary::do_find_incremental_inputs_section): Add
strtab_shndx parameter.
(Incremental_binary::do_check_inputs): New pure virtual method.
(Sized_incremental_binary::do_check_inputs): Declare.
(Incremental_checker::Incremental_checker): Add incremental_inputs
parameter, use it to initialize incremental_inputs_.
(Incremental_checker::incremental_inputs_): New field.
(Incremental_checker::command_line): New method.
(Incremental_checker::inputs): New method.
(Incremental_checker::command_line_): New field.
Ian Lance Taylor [Fri, 9 Oct 2009 16:40:50 +0000 (16:40 +0000)]
elfcpp/:
* elfcpp_file.h: Fix header guard. Include <cstdio>.
(class Elf_recognizer): New class, code from gold/object.cc.
(Elf_file::find_section_by_type): New method.
gold/:
* incremental.cc: Include <cstdarg> and "target-select.h".
(vexplain_no_incremental): New function.
(explain_no_incremental): New function.
(Incremental_binary::error): New method.
(Sized_incremental_binary::do_find_incremental_inputs_section): New
method.
(make_sized_incremental_binary): New function.
(open_incremental_binary): New function.
(can_incrementally_link_file): Add checks if output is ELF and has
inputs section.
* incremental.h: Include "elfcpp_file.h" and "output.h".
(Incremental_binary): New class.
(Sized_incremental_binary): New class.
(open_incremental_binary): Declare.
* object.cc (is_elf_object): Use
elfcpp::Elf_recognizer::is_elf_file.
(make_elf_object): Use elfcpp::Elf_recognizer::is_valid_header.
* output.h (Output_file::filesize): New method.
DJ Delorie [Fri, 9 Oct 2009 16:17:35 +0000 (16:17 +0000)]
merge from gcc
Tristan Gingold [Fri, 9 Oct 2009 15:33:37 +0000 (15:33 +0000)]
bfd/
2009-10-09 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_read_command): Handle BFD_MACH_O_LC_RPATH.
(bfd_mach_o_bfd_print_private_bfd_data): Ditto.
Tristan Gingold [Fri, 9 Oct 2009 15:14:55 +0000 (15:14 +0000)]
2009-10-09 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Rename to
bfd_mach_o_read_symtab_symbols.
(bfd_mach_o_scan_write_thread): Rename to bfd_mach_o_write_thread.
(bfd_mach_o_scan_write_relocs): Rename to bfd_mach_o_write_relocs.
(bfd_mach_o_scan_write_section_32): Rename to
bfd_mach_o_write_section_32.
(bfd_mach_o_scan_write_section_64): Rename to
bfd_mach_o_write_section_64.
(bfd_mach_o_scan_write_segment_32): Rename to
bfd_mach_o_write_segment_32.
(bfd_mach_o_scan_write_segment_64): Rename to
bfd_mach_o_write_segment_64.
(bfd_mach_o_scan_write_symtab): Rename to bfd_mach_o_write_symtab.
(bfd_mach_o_scan_read_section_32): Rename to
bfd_mach_o_read_section_32.
(bfd_mach_o_scan_read_section_64): Rename to
bfd_mach_o_read_section_64.
(bfd_mach_o_scan_read_section): Rename to bfd_mach_o_read_section.
(bfd_mach_o_scan_read_symtab_strtab): Rename to
bfd_mach_o_read_symtab_strtab.
(bfd_mach_o_scan_read_symtab_symbol): Rename to
bfd_mach_o_read_symtab_symbol.
(bfd_mach_o_scan_read_dysymtab_symbol): Rename to
bfd_mach_o_read_dysymtab_symbol.
(bfd_mach_o_scan_read_dylinker): Rename to bfd_mach_o_read_dylinker.
(bfd_mach_o_scan_read_dylib): Rename to bfd_mach_o_read_dylib.
(bfd_mach_o_scan_read_prebound_dylib): Rename to
bfd_mach_o_read_prebound_dylib.
(bfd_mach_o_scan_read_thread): Rename to bfd_mach_o_read_thread.
(bfd_mach_o_scan_read_dysymtab): Rename to bfd_mach_o_read_dysymtab.
(bfd_mach_o_scan_read_symtab): Rename to bfd_mach_o_read_symtab.
(bfd_mach_o_scan_read_uuid): Rename to bfd_mach_o_read_uuid.
(bfd_mach_o_scan_read_linkedit): Rename to bfd_mach_o_read_linkedit.
(bfd_mach_o_scan_read_str): Rename to bfd_mach_o_read_str.
(bfd_mach_o_scan_read_dyld_info): Rename to bfd_mach_o_read_dyld_info.
(bfd_mach_o_scan_read_segment): Rename to bfd_mach_o_read_segment.
(bfd_mach_o_scan_read_segment_32): Rename to
bfd_mach_o_read_segment_32.
(bfd_mach_o_scan_read_segment_64): Rename to
bfd_mach_o_read_segment_64.
(bfd_mach_o_scan_read_command): Rename to bfd_mach_o_read_command.
* mach-o.h (bfd_mach_o_scan_read_dysymtab_symbol): Rename to
bfd_mach_o_read_dysymtab_symbol.
H.J. Lu [Fri, 9 Oct 2009 13:32:49 +0000 (13:32 +0000)]
2009-10-09 H.J. Lu <hongjiu.lu@intel.com>
PR ld/10749
* ld-elf/relocatable.d: New.
* ld-elf/relocatable.t: Likewise.
* ld-elf/simple.s: Likewise.
Tristan Gingold [Fri, 9 Oct 2009 08:18:16 +0000 (08:18 +0000)]
2009-10-09 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_section_get_entry_size): Moved.
(bfd_mach_o_section_get_nbr_indirect): Ditto.
(bfd_mach_o_get_synthetic_symtab): New function.
(bfd_mach_o_print_private_header): Print the number of commands
in decimal.
* mach-o.h (bfd_mach_o_get_synthetic_symtab): Add prototype.
* mach-o-target.c: Do not defined bfd_mach_o_get_synthetic_symtab.
Alan Modra [Fri, 9 Oct 2009 05:19:37 +0000 (05:19 +0000)]
PR ld/10749
* ldlang.c (lang_size_sections_1): Zero section vmas only for COFF.
DJ Delorie [Fri, 9 Oct 2009 04:49:48 +0000 (04:49 +0000)]
merge from gcc
Alan Modra [Thu, 8 Oct 2009 22:59:56 +0000 (22:59 +0000)]
daily update
Tristan Gingold [Thu, 8 Oct 2009 12:46:16 +0000 (12:46 +0000)]
2009-10-08 Tristan Gingold <gingold@adacore.com>
* config.bfd: Add bfd_mach_o_i386_vec in x86_64-darwin targ_selvecs.
H.J. Lu [Thu, 8 Oct 2009 12:44:57 +0000 (12:44 +0000)]
2009-10-08 H.J. Lu <hongjiu.lu@intel.com>
PR gas/10704
* gas/i386/intelok.s: Move 2 PIC tests to ...
* gas/i386/intelpic.s: Here.
* gas/i386/intelok.d: Updated.
* gas/i386/intelpic.d: Likewise.
H.J. Lu [Thu, 8 Oct 2009 02:38:25 +0000 (02:38 +0000)]
2009-10-07 H.J. Lu <hongjiu.lu@intel.com>
PR ld/10744
* ld-scripts/phdrs3.exp: Run phdrs3a.
* ld-scripts/phdrs3a.d: New.
* ld-scripts/phdrs3a.t: Likewise.
Alan Modra [Thu, 8 Oct 2009 01:11:56 +0000 (01:11 +0000)]
PR ld/10744
* ld-scripts/phdrs3.d: Update.
Alan Modra [Thu, 8 Oct 2009 01:00:27 +0000 (01:00 +0000)]
PR ld/10744
* ldlang.c (lang_new_phdr): Allow FILEHDR/PHDRS on more than the
first PT_LOAD header.
* ld.texinfo: Update.
Alan Modra [Wed, 7 Oct 2009 22:59:59 +0000 (22:59 +0000)]
daily update
H.J. Lu [Wed, 7 Oct 2009 20:02:05 +0000 (20:02 +0000)]
2009-10-07 H.J. Lu <hongjiu.lu@intel.com>
PR gas/10704
* gas/i386/intelok.s: Add 2 new tests.
* gas/i386/intelok.d: Updated.
H.J. Lu [Wed, 7 Oct 2009 18:33:20 +0000 (18:33 +0000)]
Checked in the missing testcases.
H.J. Lu [Wed, 7 Oct 2009 18:31:50 +0000 (18:31 +0000)]
Add the missing entry.
Ian Lance Taylor [Wed, 7 Oct 2009 15:41:50 +0000 (15:41 +0000)]
* arm.cc (Arm_relocate_functions::extract_arm_movw_movt_addend):
New function.
(Arm_relocate_functions::insert_val_arm_movw_movt): New function.
(Arm_relocate_functions::extract_thumb_movw_movt_addend): New
function.
(Arm_relocate_functions::insert_val_thumb_movw_movt): New
function.
(Arm_relocate_functions::movw_abs_nc): New function.
(Arm_relocate_functions::movt_abs): New function.
(Arm_relocate_functions::thm_movw_abs_nc): New function.
(Arm_relocate_functions::thm_movt_abs): New function.
(Scan::local): Handle R_ARM_MOVW_ABS_NC, R_ARM_MOVT_ABS,
R_ARM_THM_MOVW_ABS_NC, R_ARM_THM_MOVT_ABS.
(Scan::global): Likewise.
(Relocate::relocate): Likewise.
(Relocatable_size_for_reloc::get_size_for_reloc): Likewise.
Michael Eager [Wed, 7 Oct 2009 15:40:17 +0000 (15:40 +0000)]
* opcodes/microblaze-dis.c: Add include for microblaze-dis.h,
eliminate local extern decls.
* opcodes/microblaze-dis.h: New.
Ian Lance Taylor [Wed, 7 Oct 2009 15:30:40 +0000 (15:30 +0000)]
* arm.cc (Arm_relocate_functions::got_prel) New function.
(Scan::local, Scan::global): Handle R_ARM_GOT_PREL.
(Relocate::relocate): Likewise.
(Relocatable_size_for_reloc::get_size_for_reloc): Likewise.
Nathan Sidwell [Wed, 7 Oct 2009 14:00:05 +0000 (14:00 +0000)]
* config/tc-arm.c (mapping_state, mapping_state_2): Make dummy
versions slightly more than nothing.
Nathan Sidwell [Wed, 7 Oct 2009 13:46:54 +0000 (13:46 +0000)]
* doc/c-arm.texi (ARM Options): Correctly name the two mapcs options.
Nathan Sidwell [Wed, 7 Oct 2009 07:25:35 +0000 (07:25 +0000)]
ld/
* ldlang.c (lang_new_phdr): Check PHDRS and FILEHDR in loadable
segments do not appear after a different loadable segment.
* ld.texinfo (PHDRS): Document order of processing segments.
Document where PHDRS and FILEHDR may appear.
ld/testsuite/
* ld-scripts/phdrs3.d: New.
* ld-scripts/phdrs3.t: New.
* ld-scripts/phdrs3.exp: New.
Ian Lance Taylor [Wed, 7 Oct 2009 05:57:48 +0000 (05:57 +0000)]
Sync with gcc repository.