[Bug gold/13359] gold internal error in relocate_tls, at gold/x86_64.cc:3187
http://sourceware.org/bugzilla/show_bug.cgi?id=13359 --- Comment #4 from cvs-commit at gcc dot gnu.org cvs-commit at gcc dot gnu.org 2011-12-19 21:14:45 UTC --- CVSROOT:/cvs/src Module name:src Branch: binutils-2_22-branch Changes by:i...@sourceware.org2011-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 ccout...@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 ccout...@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 ccout...@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 ccout...@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 tmsri...@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 i...@google.com PR gold/13163 * script-sections.cc (Output_section_element_dot_assignment::needs_output_section): New function. 2011-10-19 Ian Lance Taylor i...@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 ccout...@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 ccout...@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 ccout...@google.com * readsyms.cc (Read_symbols::run): Don't queue an unblocker task for members of lib groups. 2011-10-17 Cary Coutant ccout...@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 ccout...@google.com * output.cc (Output_file::open_base_file): Handle case where ::read returns less than requested size. 2011-10-10 Cary Coutant ccout...@google.com * incremental.cc
[Bug gold/13023] gold misinterprets dot assignments in sections
http://sourceware.org/bugzilla/show_bug.cgi?id=13023 --- Comment #7 from cvs-commit at gcc dot gnu.org cvs-commit at gcc dot gnu.org 2011-12-19 21:14:46 UTC --- CVSROOT:/cvs/src Module name:src Branch: binutils-2_22-branch Changes by:i...@sourceware.org2011-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 ccout...@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 ccout...@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 ccout...@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 ccout...@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 tmsri...@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 i...@google.com PR gold/13163 * script-sections.cc (Output_section_element_dot_assignment::needs_output_section): New function. 2011-10-19 Ian Lance Taylor i...@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 ccout...@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 ccout...@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 ccout...@google.com * readsyms.cc (Read_symbols::run): Don't queue an unblocker task for members of lib groups. 2011-10-17 Cary Coutant ccout...@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 ccout...@google.com * output.cc (Output_file::open_base_file): Handle case where ::read returns less than requested size. 2011-10-10 Cary Coutant ccout...@google.com * incremental.cc
[Bug gold/13245] PREVAILING_DEF reported too often.
http://sourceware.org/bugzilla/show_bug.cgi?id=13245 --- Comment #16 from cvs-commit at gcc dot gnu.org cvs-commit at gcc dot gnu.org 2011-12-19 21:14:52 UTC --- CVSROOT:/cvs/src Module name:src Branch: binutils-2_22-branch Changes by:i...@sourceware.org2011-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 ccout...@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 ccout...@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 ccout...@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 ccout...@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 tmsri...@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 i...@google.com PR gold/13163 * script-sections.cc (Output_section_element_dot_assignment::needs_output_section): New function. 2011-10-19 Ian Lance Taylor i...@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 ccout...@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 ccout...@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 ccout...@google.com * readsyms.cc (Read_symbols::run): Don't queue an unblocker task for members of lib groups. 2011-10-17 Cary Coutant ccout...@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 ccout...@google.com * output.cc (Output_file::open_base_file): Handle case where ::read returns less than requested size. 2011-10-10 Cary Coutant ccout...@google.com * incremental.cc
[Bug gold/13249] gold creates incorrect RELATIVE dynamic relocation for local IFUNC GOT entries
http://sourceware.org/bugzilla/show_bug.cgi?id=13249 --- Comment #4 from cvs-commit at gcc dot gnu.org cvs-commit at gcc dot gnu.org 2011-12-19 21:14:52 UTC --- CVSROOT:/cvs/src Module name:src Branch: binutils-2_22-branch Changes by:i...@sourceware.org2011-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 ccout...@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 ccout...@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 ccout...@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 ccout...@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 tmsri...@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 i...@google.com PR gold/13163 * script-sections.cc (Output_section_element_dot_assignment::needs_output_section): New function. 2011-10-19 Ian Lance Taylor i...@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 ccout...@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 ccout...@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 ccout...@google.com * readsyms.cc (Read_symbols::run): Don't queue an unblocker task for members of lib groups. 2011-10-17 Cary Coutant ccout...@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 ccout...@google.com * output.cc (Output_file::open_base_file): Handle case where ::read returns less than requested size. 2011-10-10 Cary Coutant ccout...@google.com * incremental.cc
[Bug gold/13163] internal error in set_segment_offsets, at ../../../binutils/gold/layout.cc:3050
http://sourceware.org/bugzilla/show_bug.cgi?id=13163 --- Comment #6 from cvs-commit at gcc dot gnu.org cvs-commit at gcc dot gnu.org 2011-12-19 21:14:51 UTC --- CVSROOT:/cvs/src Module name:src Branch: binutils-2_22-branch Changes by:i...@sourceware.org2011-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 ccout...@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 ccout...@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 ccout...@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 ccout...@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 tmsri...@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 i...@google.com PR gold/13163 * script-sections.cc (Output_section_element_dot_assignment::needs_output_section): New function. 2011-10-19 Ian Lance Taylor i...@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 ccout...@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 ccout...@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 ccout...@google.com * readsyms.cc (Read_symbols::run): Don't queue an unblocker task for members of lib groups. 2011-10-17 Cary Coutant ccout...@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 ccout...@google.com * output.cc (Output_file::open_base_file): Handle case where ::read returns less than requested size. 2011-10-10 Cary Coutant ccout...@google.com * incremental.cc
[Bug gold/13365] Fold functions that only jump to some other one
http://sourceware.org/bugzilla/show_bug.cgi?id=13365 --- Comment #1 from Ian Lance Taylor ian at airs dot com 2011-12-19 23:30:39 UTC --- Of course one can only do this if there are no comparisons of function pointers. And that means that it can only be done if the symbols are not visible outside the executable/shared library, or if linking statically. It requires analyzing the section contents at each eligible symbol, which is a relatively slow operation. Do you have any statistics suggesting that it will be worth it? I.e., how many such functions are there in a typical executable? -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/13366] Allow to pack some functions together
http://sourceware.org/bugzilla/show_bug.cgi?id=13366 --- Comment #1 from Ian Lance Taylor ian at airs dot com 2011-12-19 23:31:56 UTC --- I think it will be relatively difficult for the linker to safely and reliably detect cases where this packing is valid. The packing may only be done if the trailing symbol can not be interposed. The linker will only be able to do it if the function is at the end of a section, implying the use of -ffunction-sections. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/13521] New: ld.gold prefers unversioned symbol over default version
http://sourceware.org/bugzilla/show_bug.cgi?id=13521 Bug #: 13521 Summary: ld.gold prefers unversioned symbol over default version Product: binutils Version: 2.23 (HEAD) Status: NEW Severity: normal Priority: P2 Component: gold AssignedTo: i...@airs.com ReportedBy: jrnie...@gmail.com CC: ccout...@google.com Classification: Unclassified Created attachment 6119 -- http://sourceware.org/bugzilla/attachment.cgi?id=6119 simple object with reference to lzma_code before linking The ld manual (section VERSION) explains how to allow multiple versions of the same function to appear in a given shared library[1]. Debian liblzma5 5.1.1alpha+20110809-3 does that. It provides two versions of the lzma_code function --- an unversioned compatibility symbol and a versioned symbol: | $ eu-readelf -s /usr/lib/x86_64-linux-gnu/liblzma.so.5.0.0 | grep lzma_code |32: 30f0142 FUNCGLOBAL DEFAULT 13 lzma_code |33: 3020202 FUNCGLOBAL DEFAULT 13 lzma_code@@XZ_5.0 When I link to the library using ld.bfd, the versioned symbol is preferred, as I'd expect[2]: | $ ld.bfd -o test.bfd test.o -llzma | ld.bfd: warning: cannot find entry symbol _start; defaulting to 00400270 | $ eu-readelf -s test.bfd | grep lzma_code | 1: 0 FUNCGLOBAL DEFAULTUNDEF lzma_code@XZ_5.0 (2) |17: 0 FUNCGLOBAL DEFAULTUNDEF lzma_code@@XZ_5.0 By contrast, ld.gold seems to prefer the unversioned symbol. | $ ld.gold -o test.gold test.o -llzma | $ eu-readelf -s test.gold | grep lzma_code | 1: 0 FUNCGLOBAL DEFAULTUNDEF lzma_code | 5: 0 FUNCGLOBAL DEFAULTUNDEF lzma_code Reproducible with binutils 2.22 and with a current snapshot of HEAD (3d38152c, 2011-12-19). Known problem? Any hints for tracking it down? [1] “The second GNU extension is to allow multiple versions of the same function to appear in a given shared library. In this way you can make an incompatible change to an interface without increasing the major version number of the shared library, while still allowing applications linked against the old interface to continue to function. “To do this, you must use multiple `.symver' directives in the source file. Here is an example: __asm__(.symver original_foo,foo@); __asm__(.symver old_foo,foo@VERS_1.1); __asm__(.symver old_foo1,foo@VERS_1.2); __asm__(.symver new_foo,foo@@VERS_2.0); “In this example, `foo@' represents the symbol `foo' bound to the unspecified base version of the symbol. The source file that contains this example would define 4 C functions: `original_foo', `old_foo', `old_foo1', and `new_foo'.” [2] “When you have multiple definitions of a given symbol, there needs to be some way to specify a default version to which external references to this symbol will be bound. You can do this with the `foo@@VERS_2.0' type of `.symver' directive. You can only declare one version of a symbol as the default in this manner; otherwise you would effectively have multiple definitions of the same symbol.” -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/13521] ld.gold prefers unversioned symbol over default version
http://sourceware.org/bugzilla/show_bug.cgi?id=13521 --- Comment #1 from Jonathan Nieder jrnieder at gmail dot com 2011-12-20 07:14:36 UTC --- Created attachment 6120 -- http://sourceware.org/bugzilla/attachment.cgi?id=6120 DSO with versioned and unversioned lzma_code symbol (Debian liblzma5 5.1.1alpha+20110809-3) -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/13521] ld.gold prefers unversioned symbol over default version
http://sourceware.org/bugzilla/show_bug.cgi?id=13521 --- Comment #2 from Jonathan Nieder jrnieder at gmail dot com 2011-12-20 07:17:03 UTC --- Created attachment 6121 -- http://sourceware.org/bugzilla/attachment.cgi?id=6121 output from ld.gold -o output.gold test.o liblzma.so.5.0.0, which should refer to the versioned symbol but refers to the unversioned symbol instead -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils