Bug 13163 - internal error in set_segment_offsets, at ../../../binutils/gold/layout.cc:3050
Summary: internal error in set_segment_offsets, at ../../../binutils/gold/layout.cc:3050
Status: REOPENED
Alias: None
Product: binutils
Classification: Unclassified
Component: gold (show other bugs)
Version: 2.22
: P2 normal
Target Milestone: ---
Assignee: Ian Lance Taylor
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-07 16:57 UTC by Roland McGrath
Modified: 2011-12-19 23:26 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
linker script (1.64 KB, application/octet-stream)
2011-09-07 16:57 UTC, Roland McGrath
Details
object file (7.09 KB, application/octet-stream)
2011-09-07 16:59 UTC, Roland McGrath
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roland McGrath 2011-09-07 16:57:46 UTC
Created attachment 5921 [details]
linker script

With today's trunk:

gold/ld-new --build-id -m elf_i386 -o foo --script=chrome/nacl/nacl_helper_bootstrap_linux.x -z max-page-size=0x1000 out/Debug/obj.target/nacl_helper_bootstrap_raw/chrome/nacl/nacl_helper_bootstrap_linux.o
Comment 1 Roland McGrath 2011-09-07 16:59:09 UTC
Created attachment 5922 [details]
object file
Comment 2 Roland McGrath 2011-10-06 23:16:50 UTC
ping?
Comment 3 cvs-commit@gcc.gnu.org 2011-10-19 15:51:04 UTC
CVSROOT:	/cvs/src
Module name:	src
Changes by:	ian@sourceware.org	2011-10-19 15:51:00

Modified files:
	gold           : ChangeLog script-sections.cc 

Log message:
	PR gold/13163
	* script-sections.cc
	(Output_section_element_dot_assignment::needs_output_section): New
	function.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/ChangeLog.diff?cvsroot=src&r1=1.843&r2=1.844
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/script-sections.cc.diff?cvsroot=src&r1=1.53&r2=1.54
Comment 4 Ian Lance Taylor 2011-10-19 15:53:35 UTC
Fixed in mainline.  Sorry for the delay.
Comment 5 Roland McGrath 2011-10-19 20:20:37 UTC
It doesn't crash, but the results do not match what GNU ld does.

GNU ld (trunk):

[ 5] .reserve             NOBITS       00013000 002000 3ffed000  0 WA     0   0  1
  LOAD           0x002000 0x00013000 0x00013000 0x000000 0x3ffed000     0x1000

gold (trunk):

[ 6] .reserve             PROGBITS     00013000 002000 3ffda000  0 A      0   0  0
  LOAD           0x002000 0x00013000 0x00013000 0x3ffda000 0x3ffda000     0x1000
Comment 6 cvs-commit@gcc.gnu.org 2011-12-19 21:14:51 UTC
CVSROOT:	/cvs/src
Module name:	src
Branch: 	binutils-2_22-branch
Changes by:	ian@sourceware.org	2011-12-19 21:14:40

Modified files:
	gold           : ChangeLog Makefile.am Makefile.in configure 
	                 configure.ac dwarf_reader.cc expression.cc 
	                 fileread.cc gold.cc i386.cc incremental.cc 
	                 incremental.h layout.cc options.cc options.h 
	                 output.cc output.h plugin.cc powerpc.cc 
	                 readsyms.cc resolve.cc script-sections.cc 
	                 script.cc script.h sparc.cc symtab.cc symtab.h 
	                 x86_64.cc 
	gold/testsuite : Makefile.in plugin_test_2.sh script_test_2.t 

Log message:
	Copy from mainline to binutils 2.22 branch:
	
	2011-12-17  Cary Coutant  <ccoutant@google.com>
	
	* dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Add casts.
	* resolve.cc (Symbol_table::resolve): Likewise.
	* i386.cc (Target_i386::do_code_fill): Use char constants for nop
	arrays.
	* x86_64.cc (Target_x86_64::do_code_fill): Likewise.
	
	2011-10-31  Cary Coutant  <ccoutant@google.com>
	
	PR gold/13023
	* expression.cc (Expression::eval_with_dot): Add
	is_section_dot_assignment parameter.
	(Expression::eval_maybe_dot): Likewise.  Adjust value when rhs is
	absolute and assigning to dot within a section.
	* script-sections.cc
	(Output_section_element_assignment::set_section_addresses): Pass
	dot_section to set_if_absolute.
	(Output_section_element_dot_assignment::finalize_symbols): Pass TRUE
	as is_section_dot_assignment flag to eval_with_dot.
	(Output_section_element_dot_assignment::set_section_addresses):
	Likewise.
	* script.cc (Symbol_assignment::set_if_absolute): Add dot_section
	parameter.  Also set value if relative to dot_section; set the
	symbol's output_section.
	* script.h (Expression::eval_with_dot): Add is_section_dot_assignment
	parameter.  Adjust all callers.
	(Expression::eval_maybe_dot): Likewise.
	(Symbol_assignment::set_if_absolute): Add dot_section parameter.
	Adjust all callers.
	* testsuite/script_test_2.t: Test assignment of an absolute value
	to dot within an output section element.
	
	2011-10-31  Cary Coutant  <ccoutant@google.com>
	
	* options.h (class General_options): Add --[no-]gnu-unique options.
	* symtab.cc (Symbol_table::sized_write_globals): Convert
	STB_GNU_UNIQUE to STB_GLOBAL if --no-gnu-unique.
	
	2011-10-31  Cary Coutant  <ccoutant@google.com>
	
	PR gold/13359
	* i386.cc (Target_i386::Relocate::relocate_tls): Remove
	unnecessary assertion.
	* x86_64.cc (Target_x86_64::Relocate::relocate_tls): Likewise.
	
	2011-10-31 Sriraman Tallam  <tmsriram@google.com>
	
	* symtab.h (Symbol_table::gc_mark_symbol_for_shlib): Rename to
	gc_mark_symbol.
	* symtab.cc (Symbol_table::gc_mark_symbol_for_shlib): Rename to
	gc_mark_symbol.
	Change to just keep the section associated with symbol.
	(Symbol_table::add_from_relobj): Mark symbols as not garbage when
	they are externally visible and --export-dynamic is turned on.
	(Symbol_table::gc_mark_dyn_syms): Call gc_mark_symbol.
	
	2011-10-19  Ian Lance Taylor  <iant@google.com>
	
	PR gold/13163
	* script-sections.cc
	(Output_section_element_dot_assignment::needs_output_section): New
	function.
	
	2011-10-19  Ian Lance Taylor  <iant@google.com>
	
	PR gold/13204
	* layout.cc (Layout::segment_precedes): Don't assert failure if a
	--section-start option was seen.
	* options.h (General_options::any_section_start): New function.
	
	2011-10-18  Cary Coutant  <ccoutant@google.com>
	
	* output.cc (posix_fallocate): Return 0 on success, errno on failure.
	(Output_file::map_no_anonymous): Check for non-zero
	return code from posix_fallocate.
	
	2011-10-17  Cary Coutant  <ccoutant@google.com>
	
	PR gold/13245
	* plugin.cc (is_visible_from_outside): Check for symbols
	referenced from dynamic objects.
	* resolve.cc (Symbol_table::resolve): Don't count references
	from dynamic objects as references from real ELF files.
	* testsuite/plugin_test_2.sh: Adjust expected result.
	
	2011-10-17  Cary Coutant  <ccoutant@google.com>
	
	* readsyms.cc (Read_symbols::run): Don't queue an unblocker
	task for members of lib groups.
	
	2011-10-17  Cary Coutant  <ccoutant@google.com>
	
	PR gold/13288
	* fileread.cc (File_read::find_view): Add assert.
	(File_read::make_view): Move bounds check (replace with assert)...
	(File_read::find_or_make_view): ... to here.
	
	2011-10-12  Cary Coutant  <ccoutant@google.com>
	
	* output.cc (Output_file::open_base_file): Handle case where
	::read returns less than requested size.
	
	2011-10-10  Cary Coutant  <ccoutant@google.com>
	
	* incremental.cc (Sized_relobj_incr::Sized_relobj_incr):
	Initialize defined_count_.
	(Sized_relobj_incr::do_add_symbols): Count defined symbols.
	(Sized_relobj_incr::do_get_global_symbol_counts): Rewrite.
	(Sized_incr_dynobj::Sized_incr_dynobj): Initialize defined_count_.
	(Sized_incr_dynobj::do_add_symbols): Count defined symbols.
	(Sized_incr_dynobj::do_get_global_symbol_counts): Rewrite.
	* incremental.h (Sized_relobj_incr::defined_count_): New data
	member.
	(Sized_incr_dynobj::defined_count_): New data member.
	* plugin.cc (Sized_pluginobj::do_get_global_symbol_counts):
	Return zeroes instead of internal error.
	
	2011-10-10  Cary Coutant  <ccoutant@google.com>
	
	PR gold/13249
	* output.cc (Output_reloc::Output_reloc): Add use_plt_offset flag.
	(Output_reloc::symbol_value): Return PLT offset if flag is set.
	* output.h (class Output_reloc): Add use_plt_offset flag.
	(Output_reloc::type_): Adjust size of bit field.
	(Output_reloc::use_plt_offset_): New bit field.
	(class Output_data_reloc): Adjust all calls to Output_reloc_type.
	(Output_data_reloc::add_local_relative): (RELA only) Add use_plt_offset
	flag.  Adjust all callers.
	* x86_64.cc (Target_x86_64::Scan::local): Check for IFUNC when
	creating RELATIVE relocations.
	
	2011-10-03   Diego Novillo  <dnovillo@google.com>
	
	* options.cc (parse_uint): Fix dereference of RETVAL.
	
	2011-09-29  Cary Coutant  <ccoutant@google.com>
	
	* incremental.cc (Sized_incremental_binary::do_process_got_plt):
	Check for NULL.
	* symtab.cc (Symbol_table::add_from_relobj): Ignore version
	symbols during incremental update.
	(Symbol_table::add_from_dynobj): Likewise.
	
	2011-09-26  Cary Coutant  <ccoutant@google.com>
	
	* gold.cc (queue_initial_tasks): Move option checks ...
	* options.cc (General_options::finalize): ... to here. Disable
	some options; make others fatal.
	
	2011-09-23  Simon Baldwin  <simonb@google.com>
	
	* configure.ac: Add new --with-gold-ldadd and --with-gold-ldflags
	configuration options.
	* configure: Regenerate.
	* Makefile.am: Handle GOLD_LDADD and GOLD_LDFLAGS.
	* Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.824.2.6&r2=1.824.2.7
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/Makefile.am.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.62&r2=1.62.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/Makefile.in.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.89&r2=1.89.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/configure.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.69&r2=1.69.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/configure.ac.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.66&r2=1.66.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/dwarf_reader.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.33&r2=1.33.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/expression.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.18&r2=1.18.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/fileread.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.74&r2=1.74.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/gold.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.94&r2=1.94.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/i386.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.141&r2=1.141.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/incremental.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.47&r2=1.47.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/incremental.h.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.28&r2=1.28.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/layout.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.220&r2=1.220.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/options.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.114&r2=1.114.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/options.h.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.169.2.1&r2=1.169.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/output.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.159&r2=1.159.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/output.h.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.128&r2=1.128.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/plugin.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.48.2.1&r2=1.48.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/powerpc.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.39&r2=1.39.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/readsyms.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.51&r2=1.51.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/resolve.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.63&r2=1.63.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/script-sections.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.53&r2=1.53.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/script.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.84&r2=1.84.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/script.h.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.37&r2=1.37.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/sparc.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.48.2.1&r2=1.48.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/symtab.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.159.2.1&r2=1.159.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/symtab.h.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.125&r2=1.125.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/x86_64.cc.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.139&r2=1.139.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/testsuite/Makefile.in.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.191.2.2&r2=1.191.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/testsuite/plugin_test_2.sh.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.2&r2=1.2.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/testsuite/script_test_2.t.diff?cvsroot=src&only_with_tag=binutils-2_22-branch&r1=1.3&r2=1.3.14.1
Comment 7 Roland McGrath 2011-12-19 21:23:04 UTC
Should I file a separate bug for http://sourceware.org/bugzilla/show_bug.cgi?id=13163#c5 ?
Comment 8 Ian Lance Taylor 2011-12-19 23:26:42 UTC
I'll reopen this bug.

Sorry I have not had time to work on this.