• R/O
  • HTTP
  • SSH
  • HTTPS

提交列表

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


binutils-2_29-branch
RSS
Rev. 时间 作者
8efd17c binutils-2_29-branch 2018-04-28 07:00:42 Sriraman Tallam

New plugin interface to get list of symbols wrapped with --wrap option.

2018-02-22 Sriraman Tallam <tmsriram@google.com>

* plugin.cc (get_wrap_symbols): New plugin interface.
(load): Add get_wrap_symbols to transfer vector.
* plugin-api.h (ld_plugin_get_wrap_symbols): New plugin interface.
* testsuite/plugin_test.c (onload): Call and check get_wrap_symbols
interface.
* testsuite/plugin_test_wrap_symbols.sh: New test script.
* testsuite/plugin_test_wrap_symbols_1.cc: New file.
* testsuite/plugin_test_wrap_symbols_2.cc: New file.
* testsuite/Makefile.am (plugin_test_wrap_symbols): New test.
* testsuite/Makefile.in: Regenerate.

(cherry picked from commit 0b65c07b97c43e8891c2e14061270878a85222c8)

4ba9ba2 2018-04-28 05:06:07 Sriraman Tallam

Fix symbol resolution with linker plugins for defsym symbols.

2018-02-07 Sriraman Tallam <tmsriram@google.com>

* expression.cc (Symbol_expression::set_expr_sym_in_real_elf):
New method.
(Unary_expression::set_expr_sym_in_real_elf): New method.
(Binary_expression::set_expr_sym_in_real_elf): New method.
(Trinary_expression::set_expr_sym_in_real_elf): New method.
* plugin.cc (get_symbol_resolution_info): Fix symbol resolution if
defined or used in defsyms.
* plugin.h (Plugin_manager::is_defsym_def): New method.
(Plugin_manager::Plugin_manager): Initialize defsym_defines_set_.
(Plugin_manager::defsym_defines_set_): New member.
(Plugin_manager::Defsym_defines_set): New typedef.
* script.cc (Script_options::set_defsym_uses_in_real_elf): New method.
(Script_options::find_defsym_defs): New method.
* script.h (Expression::set_expr_sym_in_real_elf): New method.
(Symbol_assignment::is_defsym): New method.
(Symbol_assignment::value): New method.
(Script_options::find_defsym_defs): New method.
(Script_options::set_defsym_uses_in_real_elf): New method.
* testsuite/Makefile.am (plugin_test_defsym): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/plugin_test.c: Check for new symbol resolution.
* testsuite/plugin_test_defsym.sh: New script.
* testsuite/plugin_test_defsym.c: New test source.

(cherry picked from commit 3281b315c89caf1d539a316e41cc095e46482f75)

af0200d 2018-04-05 06:04:28 Eric Christopher

Apply:

2017-11-08 Kyle Butt <iteratee@google.com>

* object.cc (do_find_special_sections): Fix a thinko with memmem return
values and check for != NULL rather than == 0.

3fa1ac0 2018-03-28 19:36:35 Eric Botcazou

PR ld/22972 on SPARC.

This is a regression for the corner case of a hidden symbol in a PIC/PIE
binary which is subject to both a new-style GOTDATA relocation and an
old-style GOT relocation. In this case, depending on the link order,
the R_SPARC_RELATIVE dynamic relocation for the GOT slot needed because
of the old-style relocation can be replaced with R_SPARC_NONE coming
from the GOTDATA relocation.

The fix simply records whether an old-style GOT relocation is seen for a
symbol and prevents the R_SPARC_NONE from being generated in this case.

bfd/
* elfxx-sparc.c (struct _bfd_sparc_elf_link_hash_entry): Add new flag
has_old_style_got_reloc.
(_bfd_sparc_elf_check_relocs) <GOT relocations>: Set it for old-style
relocations. Fix a couple of long lines.
(_bfd_sparc_elf_relocate_section) <R_SPARC_GOTDATA_OP>: Do not generate
a R_SPARC_NONE for the GOT slot if the symbol is also subject to
old-style GOT relocations.
ld/
* testsuite/ld-sparc/sparc.exp: Add test for mixed GOTDATA/GOT relocs.
* testsuite/ld-sparc/gotop-hidden.c: New file.
* testsuite/ld-sparc/got-hidden32.s: Likewise.
* testsuite/ld-sparc/got-hidden64.s: Likewise.
* testsuite/ld-sparc/pass.out: Likewise.

c0eed03 2018-03-21 06:44:13 Sriraman Tallam

New option -z,keep-text-section prefix.

This option does not merge certain text sections with prefixes
.text.hot, .text.unlikely, .text.startup and .text.exit.

* layout.cc (Layout::default_section_order): Check for text section
prefixes.
(Layout::text_section_name_mapping): New static member.
(Layout::text_section_name_mapping_count): New static member.
(Layout::match_section_name): New static function.
(Layout::output_section_name): Check for text section prefixes.
* layout.h (Output_section_order::ORDER_TEXT_HOT): New enum value.
(Output_section_order::ORDER_TEXT_STARTUP): New enum value.
(Output_section_order::ORDER_TEXT_EXIT): New enum value.
(Output_section_order::ORDER_TEXT_UNLIKELY): New enum value.
(Layout::text_section_name_mapping): New static member.
(Layout::text_section_name_mapping_count): New static member.
(Layout::match_section_name): New static function.
* options.h (keep_text_section_prefix): New -z option.
* testsuite/Makefile.am (keep_text_section_prefix): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/keep_text_section_prefix.cc: New test source.
* testsuite/keep_text_section_prefix.sh: New test script.

(cherry picked from commit 779bdadbea9a62e5a2203651703e15edd321b9d6)

85e95c9 2018-02-22 23:39:19 Nick Clifton

Another merge

96a94bd 2018-02-22 22:00:36 A. Wilcox

Fix memory corruption when using memcpy to overwtite a string in place.

PR 22014
* config/tc-mips.c (mips_lookup_insn): Use memmove to strip the
instruction size suffix.

9ff0c76 2018-02-10 10:54:58 Eric Botcazou

Fix GOT relocation overflow on SPARC.

There are 2 failures left in the linker testsuite on SPARC64/Linux and
they are caused by 2 different issues leading to the same end effect:
the overflow of the relocation section for the GOT, i.e. the linker
generates too many dynamic relocations for the GOT wrt the size of the
relocation section, leading to memory corruption and missing relocations
in the final binary.

The first issue was introduced by:
https://sourceware.org/ml/binutils/2017-06/msg00368.html
which makes the linker generate more R_SPARC_RELATIVE relocations for
the GOT without adjusting the size of the relocation section. This is
fixed by (1) preventively adjusting this size in allocate_dynrelocs and
(2) generating R_SPARC_NONE if needed when R_SPARC_GOTDATA_OP is relaxed.

The second issue is that we generate a GOT relocation for an undefined
weak symbol with non-default visibility in a PIC binary without accounting
for that in the size of the relocation section. Since the address of the
symbol should resolve to 0 at run time, it is fixed by not generating the
relocation at all, i.e. leaving the GOT entry zeroed.

bfd/
* elfxx-sparc.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Reorder conditions.
(sparc_elf_append_rela): Assert that there is enough room in section.
(_bfd_sparc_elf_copy_indirect_symbol): Fix formatting.
(_bfd_sparc_elf_adjust_dynamic_symbol): Minor tweak.
(allocate_dynrelocs): Remove outdated comments and reorder conditions.
For a symbol subject to a GOT relocation, reserve a slot in the
relocation section if the symbol isn't dynamic and we are in PIC mode.
(_bfd_sparc_elf_relocate_section) <R_SPARC_GOTDATA_OP>: If relocation
is relaxed and a slot was reserved, generate a R_SPARC_NONE relocation.
<R_SPARC_GOTDATA_OP_HIX22>: Adjust comments.
<R_SPARC_PC10>: Reorder conditions. Remove always-false assertion.
(_bfd_sparc_elf_finish_dynamic_symbol): Rename local_undefweak into
resolved_to_zero. Do not generate a dynamic GOT relocation for an
undefined weak symbol with non-default visibility. Remove superfluous
'else' and fix formatting.

b449b9e 2018-01-15 09:03:47 GDB Administrator

Automatic date update in version.in

2bc3dad 2018-01-14 09:01:48 GDB Administrator

Automatic date update in version.in

096ed33 2018-01-13 09:01:31 GDB Administrator

Automatic date update in version.in

c19049c 2018-01-13 04:18:07 Eric Christopher

2018-01-12 Eric Christopher <echristo@gmail.com>

Apply from master:
2018-01-12 Sterling Augustine <saugustine@google.com>

* cref.cc (Cref_inputs::Cref_table_compare::operator): Add
conditionals and calls to is_forwarder.

9f1eb2d 2018-01-12 09:01:25 GDB Administrator

Automatic date update in version.in

b337d96 2018-01-11 09:01:27 GDB Administrator

Automatic date update in version.in

15f3f46 2018-01-10 09:01:25 GDB Administrator

Automatic date update in version.in

d0119c4 2018-01-09 09:01:29 GDB Administrator

Automatic date update in version.in

acfcd00 2018-01-08 09:01:35 GDB Administrator

Automatic date update in version.in

2c103f3 2018-01-07 09:01:22 GDB Administrator

Automatic date update in version.in

6bff78c 2018-01-06 09:01:17 GDB Administrator

Automatic date update in version.in

c0714c6 2018-01-05 09:01:32 GDB Administrator

Automatic date update in version.in

8aa6e61 2018-01-04 09:01:27 GDB Administrator

Automatic date update in version.in

b8d4918 2018-01-03 09:01:20 GDB Administrator

Automatic date update in version.in

e1d40c9 2018-01-02 09:01:19 GDB Administrator

Automatic date update in version.in

5998835 2018-01-01 09:01:24 GDB Administrator

Automatic date update in version.in

58bae49 2017-12-31 09:01:22 GDB Administrator

Automatic date update in version.in

fb4acfb 2017-12-30 09:01:36 GDB Administrator

Automatic date update in version.in

5740c65 2017-12-29 09:01:38 GDB Administrator

Automatic date update in version.in

1e4587e 2017-12-28 09:01:16 GDB Administrator

Automatic date update in version.in

e01bfd1 2017-12-27 09:01:07 GDB Administrator

Automatic date update in version.in

34139c4 2017-12-26 09:01:22 GDB Administrator

Automatic date update in version.in