PowerPC PLT stub alignment fixes
[deliverable/binutils-gdb.git] / bfd / ChangeLog
1 2018-01-18 Alan Modra <amodra@gmail.com>
2
3 * elf32-ppc.c (ppc_elf_create_glink): Correct alignment of .glink.
4 * elf64-ppc.c (ppc64_elf_size_stubs): Handle negative plt_stub_align.
5 (ppc64_elf_build_stubs): Likewise.
6
7 2018-01-17 Nick Clifton <nickc@redhat.com>
8
9 * po/ru.po: Updated Russian translation.
10 * po/uk/po: Updated Ukranian translation.
11
12 2018-01-17 Alan Modra <amodra@gmail.com>
13
14 * elf64-ppc.c (ppc64_elf_build_stubs): Silence gcc warning.
15
16 2018-01-17 Alan Modra <amodra@gmail.com>
17
18 * elf32-ppc.c (GLINK_ENTRY_SIZE): Handle speculation barrier.
19 (CRSETEQ, BEQCTRM): Define.
20 (is_nonpic_glink_stub): Don't check bctr.
21 (ppc_elf_link_hash_table_create): Init new ppc_elf_params field.
22 (ppc_elf_relax_section): Size speculation barrier.
23 (output_bctr): New function.
24 (write_glink_stub): Use output_bctr.
25 (ppc_elf_relocate_section): Use output_bctr for long branch stub.
26 (ppc_elf_finish_dynamic_symbol): Likewise.
27 (ppc_elf_finish_dynamic_sections): Use output_bctr.
28 * elf32-ppc.h (struct ppc_elf_params): Add speculate_indirect_jumps.
29 * elf64-ppc.c (CRSETEQ, BEQCTRM, BEQCTRLM): Define.
30 (GLINK_PLTRESOLVE_SIZE): Size speculation barrier.
31 (size_global_entry_stubs): Handle speculation barrier sizing.
32 (plt_stub_size): Likewise.
33 (output_bctr): New function.
34 (build_plt_stub, build_tls_get_addr_stub): Output speculation
35 barrier.
36 (ppc_build_one_stub): Likewise for ppc_stub_plt_branch.
37 (ppc_size_one_stub): Size speculation barrier in ppc_stub_plt_branch.
38 (build_global_entry_stubs): Output speculation barrier.
39 (ppc64_elf_build_stubs): Likewise in __glink_PLTresolve stub.
40 * elf64-ppc.h (struct ppc64_elf_params): Add speculate_indirect_jumps.
41
42 2018-01-17 Alan Modra <amodra@gmail.com>
43
44 * elf32-ppc.c (GLINK_ENTRY_SIZE): Add parameters, handle
45 __tls_get_addr_opt, and alignment sizing.
46 (TLS_GET_ADDR_GLINK_SIZE): Delete.
47 (is_nonpic_glink_stub): Don't use GLINK_ENTRY_SIZE.
48 (ppc_elf_get_synthetic_symtab): Recognize stubs spaced at 4, 6,
49 or 8 insns.
50 (ppc_elf_link_hash_table_create): Init new ppc_elf_params field.
51 (allocate_dynrelocs): Use new GLINK_ENTRY_SIZE.
52 (ppc_elf_size_dynamic_sections): Likewise. Size branch table
53 by PLT reloc count.
54 (write_glink_stub): Handle __tls_get_addr_opt stub.
55 Pad out to size given by GLINK_ENTRY_SIZE.
56 (ppc_elf_relocate_section): Adjust write_glink_stub call.
57 (ppc_elf_finish_dynamic_symbol): Likewise.
58 (ppc_elf_finish_dynamic_sections): Write PLTresolve without using
59 insn array since so many need rewriting.
60 * elf32-ppc.h (struct ppc_elf_params): Add plt_stub_align.
61 * elf64-ppc.c (GLINK_PLTRESOLVE_SIZE): Rename from
62 GLINK_CALL_STUB_SIZE. Add htab param and evaluate to size without
63 nops. Adjust all uses.
64 (ppc64_elf_get_synthetic_symtab): Don't use GLINK_CALL_STUB_SIZE
65 in glink_vma calculation.
66 (struct ppc_link_hash_table): Add global_entry section pointer.
67 (create_linkage_sections): Create separate section for global
68 entry stubs.
69 (PPC_LO, PPC_HI, PPC_HA): Move earlier.
70 (size_global_entry_stubs): Handle sizing for aligned stubs.
71 (ppc64_elf_size_dynamic_sections): Handle global_entry alloc,
72 and don't stash end of glink branch table in rawsize.
73 (ppc_build_one_stub): Rewrite stub size calculations.
74 (build_global_entry_stubs): Use new section.
75 (ppc64_elf_build_stubs): Don't pad __glink_PLTresolve with nops.
76 Build lazy link stubs out to end of section. Build global entry
77 stubs in new section.
78
79 2018-01-15 Nick Clifton <nickc@redhat.com>
80
81 * po/uk.po: Updated Ukranian translation.
82
83 2018-01-13 Nick Clifton <nickc@redhat.com>
84
85 * po/bfd.pot: Regenerated.
86
87 2018-01-13 Nick Clifton <nickc@redhat.com>
88
89 * version.m4: Bump version to 2.30.51
90 * configure: Regenerate.
91
92 2018-01-13 Nick Clifton <nickc@redhat.com>
93
94 2.30 branch created.
95
96 2018-01-12 Jens Widell <jl@opera.com>
97
98 * elf.c (setup_group): Optimize search for group by remembering
99 last found group and restarting search at that index.
100 * elf-bfd.h (struct elf_obj_tdata): Add group_search_offset field.
101
102 2018-01-12 Gunther Nikl <gnikl@users.sourceforge.net>
103
104 * aoutx.h (aout_link_check_ar_symbols): Remove default and handle
105 bfd_link_common_skip_none in switch.
106
107 2018-01-12 Alan Modra <amodra@gmail.com>
108
109 PR ld/22649
110 * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Ignore dynamic
111 references on forced local symbols.
112
113 2018-01-12 Vlad Ivanov <vlad@ivanov.email>
114
115 * elfxx-mips.c (_bfd_mips_elf_final_link): Notify user when
116 .reginfo section has wrong size.
117
118 2018-01-11 H.J. Lu <hongjiu.lu@intel.com>
119
120 PR ld/22393
121 * elf.c (_bfd_elf_map_sections_to_segments): When generating
122 separate code and read-only data LOAD segments, create a new
123 LOAD segment if the previous section contains text and the
124 current section doesn't or vice versa. Don't put a writable
125 section in a read-only segment if there is a RELRO segment.
126
127 2018-01-11 H.J. Lu <hongjiu.lu@intel.com>
128
129 PR ld/22649
130 * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Ignore dynamic
131 references on forced local symbols.
132
133 2018-01-11 H.J. Lu <hongjiu.lu@intel.com>
134
135 PR ld/22677
136 * elflink.c (bfd_elf_gc_sections): Keep all PREINIT_ARRAY,
137 INIT_ARRAY as well as FINI_ARRAY sections for ld -r --gc-section.
138
139 2017-09-27 Kuan-Lin Chen <kuanlinchentw@gmail.com>
140
141 PR 22662
142 * elf32-nds32.c (nds32_elf_relax_loadstore): Fix a typographical error.
143
144 2018-01-03 John Baldwin <jhb@FreeBSD.org>
145
146 * elf.c (elfcore_grok_freebsd_note): Handle
147 NT_FREEBSD_PROCSTAT_PROC, NT_FREEBSD_PROCSTAT_FILES, and
148 NT_FREEBSD_PROCSTAT_VMMAP.
149
150 2018-01-03 Alan Modra <amodra@gmail.com>
151
152 Update year range in copyright notice of all files.
153
154 For older changes see ChangeLog-2017
155 \f
156 Copyright (C) 2018 Free Software Foundation, Inc.
157
158 Copying and distribution of this file, with or without modification,
159 are permitted in any medium without royalty provided the copyright
160 notice and this notice are preserved.
161
162 Local Variables:
163 mode: change-log
164 left-margin: 8
165 fill-column: 74
166 version-control: never
167 End:
This page took 0.039206 seconds and 4 git commands to generate.