gdb and binutils branch binutils-2_24-branch updated. 424d420f4a30a170a7b518089deb847692cedb16
amodra@sourceware.org
amodra@sourceware.org
Wed Apr 16 14:07:00 GMT 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, binutils-2_24-branch has been updated
via 424d420f4a30a170a7b518089deb847692cedb16 (commit)
via 35be17cebc5deb6f82511b77e17a3390b900c9ec (commit)
via da7a0638f46eab9b556b08366d729024b7bdc279 (commit)
via d7a41b12be3dac389ffb2567bc09abbf4b74e793 (commit)
via 1e82f67aeaeffb362b2960b444b9fbc2b3628358 (commit)
via 1bc232742451359cdbb73b2084b31e096dc815b1 (commit)
via f80f2684a1f17cf6fb1656a90a7e686832e0580c (commit)
via 94babe6f642307b7f654792e49064b55a9707215 (commit)
via 7b7ae1aa6f79263b4c1eecdd6af97ca68bc1c982 (commit)
from d76b7a0a3e901a5ca5fe19a49bf59ac9ead091dd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=424d420f4a30a170a7b518089deb847692cedb16
commit 424d420f4a30a170a7b518089deb847692cedb16
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 16 11:47:13 2014 +0930
fill ppc476 fixup area
Stops false positive warnings from scanner.
* elf32-ppc.c (ppc_elf_relocate_section): Fill 476 fixup area
with "ba 0" rather than zeros.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=35be17cebc5deb6f82511b77e17a3390b900c9ec
commit 35be17cebc5deb6f82511b77e17a3390b900c9ec
Author: Alan Modra <amodra@gmail.com>
Date: Mon Apr 14 11:48:06 2014 +0930
ppc476 plt call stubs
Fuss over bctr in call stubs.
* elf32-ppc.c (BA): Define
(ppc_elf_link_hash_table_create): Correct default_params.
(write_glink_stub): Pad small plt call stub with "ba 0" rather
than "nop" for ppc476_workaround.
(ppc_elf_finish_dynamic_sections): Likewise for branch table
and __glink_PLTresolve. Ensure plt call stub at end of page
doesn't allow fall-thru prefetch.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=da7a0638f46eab9b556b08366d729024b7bdc279
commit da7a0638f46eab9b556b08366d729024b7bdc279
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 9 17:43:21 2014 +0930
ppc476 gas warn on data in code sections
* config/tc-ppc.c (warn_476, last_insn, last_seg, last_subseg):
New static vars.
(md_longopts, md_parse_option, md_show_usage): Add --ppc476-workaround.
(ppc_elf_cons_fix_check): New function.
(md_assemble): Set last_insn, last_seg, last_subseg.
(ppc_elf_cons, ppc_byte, md_apply_fix): Handle warn_476.
* config/tc-ppc.h (TC_CONS_FIX_CHECK): Define.
(ppc_elf_cons_fix_check): Declare.
* read.c (cons_worker): Invoke TC_CONS_FIX_CHECK.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d7a41b12be3dac389ffb2567bc09abbf4b74e793
commit d7a41b12be3dac389ffb2567bc09abbf4b74e793
Author: Alan Modra <amodra@gmail.com>
Date: Sat Apr 5 17:43:36 2014 +1030
ppc476 icache workaround fix for bctr
I got the ppc476 workaround wrong. bctr (and bctrl) as the last
instruction in a page can hit the icache bug if the preceding mtctr
insn is close by, and the destination is in the first few instructions
on the next page. This scenario can occur with code generated by gcc
to implement switch statements, or in code generated to call by
function pointer.
To prevent the bctr problem it is also necessary to remove other
instructions that otherwise would be safe.
bfd/
* elf32-ppc.c (ppc_elf_relocate_section): Remove bctr from list
of safe ppc476 insns at end of page. Also remove non-branch insns.
Expand comments.
ld/
* emultempl/ppc32elf.em (no_zero_padding, ppc_finish): New functions.
(LDEMUL_FINISH): Define.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1e82f67aeaeffb362b2960b444b9fbc2b3628358
commit 1e82f67aeaeffb362b2960b444b9fbc2b3628358
Author: Alan Modra <amodra@gmail.com>
Date: Thu Feb 27 23:31:35 2014 +1030
Fix ELF ppc32 targets that don't use ppc32elf.em
5446cbdf82892a800ed7eef563a795e75223ec52 broke powerpc-lynxos,
powerpc-netware, powerpc-windiss and powerpc-vxworks.
bfd/
* elf32-ppc.c (ppc_elf_link_hash_table_create): Provide default
params for targets that don't use ppc32elf.em.
ld/
* emulparams/elf32ppcvxworks.sh: Source plt_unwind.sh and
use ppc32elf.em.
* emultempl/ppc32elf.em (ppc_after_open): Don't compile for
vxworks.
(LDEMUL_AFTER_OPEN): Don't set for vxworks.
(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Exclude
-secure-plt, -bss-plt and -sdata-got when vxworks.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1bc232742451359cdbb73b2084b31e096dc815b1
commit 1bc232742451359cdbb73b2084b31e096dc815b1
Author: Alan Modra <amodra@gmail.com>
Date: Fri Feb 21 10:18:01 2014 +1030
Add ppc476 workaround bootstrap test
I was running this by hand to test out --ppc476-workaround. Another
bootstrap test doesn't take all that long, so let's add it to the
testsuite.
* ld-bootstrap/bootstrap.exp: Add ppc476 workaround test.
* ld-bootstrap/ppc476.t: New file.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f80f2684a1f17cf6fb1656a90a7e686832e0580c
commit f80f2684a1f17cf6fb1656a90a7e686832e0580c
Author: Alan Modra <amodra@gmail.com>
Date: Mon Feb 17 16:51:25 2014 +1030
ppc476 workaround for ld -r fixes
This fixes the glaring error that the ppc476 workaround wasn't
actually enabled for ld -r, and adjusts relocations to match moved
code.
bfd/
* elf32-ppc.c (ppc_elf_relocate_section): Move relocs on insns
patched for ppc476 workaround. Reapply branch taken/not taken
relocs.
ld/
* emultempl/ppc32elf.em (ppc_after_open_output): Really enable
ppc476 workaround for ld -r.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=94babe6f642307b7f654792e49064b55a9707215
commit 94babe6f642307b7f654792e49064b55a9707215
Author: Alan Modra <amodra@gmail.com>
Date: Wed Feb 12 16:44:36 2014 +1030
Enable ppc476 workaround for ld -r.
The Linux kernel builds modules using ld -r. These might need the
ppc476 workaround, so enable it for ld -r if sections have sufficient
alignment to tell location within a page.
bfd/
* elf32-ppc.c (ppc_elf_relax_section): Enable ppc476 workaround
for ld -r, when code sections are sufficiently aligned.
* elf32-ppc.h (struct ppc_elf_params): Delete pagesize. Add
pagesize_p2.
ld/
* emultempl/ppc32elf.em (pagesize): New static var.
(ppc_after_open_output): Set params.pagesize_p2 from pagesize.
(PARSE_AND_LIST_ARGS_CASES): Adjust to use pagesize.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7b7ae1aa6f79263b4c1eecdd6af97ca68bc1c982
commit 7b7ae1aa6f79263b4c1eecdd6af97ca68bc1c982
Author: Alan Modra <amodra@gmail.com>
Date: Thu Jan 30 08:26:02 2014 +1030
ppc476 icache bug workaround
This implements a work-around for an icache bug on 476 that can cause
execution of stale instructions when control falls through from one
page to the next. The idea is to prevent such fall-through by
replacing the last instruction on a page with a branch to a patch
area containing the instruction, then branch to the next page.
The patch also fixes a number of bugs in the existing support for long
branch trampolines.
bfd/
* elf32-ppc.c (struct ppc_elf_link_hash_table): Add params.
Delete emit_stub_syms, no_tls_get_addr_opt. Update all uses.
(ppc_elf_link_params): New function.
(ppc_elf_create_glink): Align .glink to 64 bytes for ppc476
workaround.
(ppc_elf_select_plt_layout): Remove plt_style and emit_stub_syms
parameters. Use htab->params instead.
(ppc_elf_tls_setup): Remove no_tls_get_addr_opt parameter.
(ppc_elf_size_dynamic_sections): Align __glink_PLTresolve to
64 bytes for ppc476 workaround.
(struct ppc_elf_relax_info): New.
(ppc_elf_relax_section): Exclude linker created sections and
those too small to hold one instruction. Don't add another
branch around trampolines on later relax passes. Don't
generate trampolines for undefined symbols when !relocatable,
nor for plugin symbols. Allocate space for ppc476 workaround
patch area. Free fixups on error return path.
(ppc_elf_relocate_section): Handle ppc476 workaround patching.
* elf32-ppc.h (struct ppc_elf_params): New.
(ppc_elf_select_plt_layout, ppc_elf_tls_setup): Update prototype.
(ppc_elf_link_params): Declare.
* section.c (SEC_INFO_TYPE_TARGET): Define.
* bfd-in2.h: Regenerate.
ld/
* emultempl/ppc32elf.em (no_tls_get_addr_opt, emit_stub_syms)
plt_style): Delete. Adjust all refs to instead use..
(params): ..this. New variable.
(ppc_after_open_output): New function. Tweak params and pass to
ppc_elf_link_params.
(ppc_after_open): Adjust ppc_elf_select_plt_layout call.
(ppc_before_allocation): Adjust ppc_elf_tls_setup call. Enable
relaxation for ppc476 workaround.
(PARSE_AND_LIST_*): Add --{no-,}ppc476-workaround support.
(LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 61 ++
bfd/bfd-in2.h | 1 +
bfd/elf32-ppc.c | 1034 +++++++++++++++++++++----------
bfd/elf32-ppc.h | 26 +-
bfd/section.c | 1 +
gas/ChangeLog | 14 +
gas/config/tc-ppc.c | 72 +++-
gas/config/tc-ppc.h | 4 +
gas/read.c | 9 +
ld/ChangeLog | 37 ++
ld/emulparams/elf32ppcvxworks.sh | 2 +
ld/emultempl/ppc32elf.em | 146 ++++-
ld/testsuite/ChangeLog | 5 +
ld/testsuite/ld-bootstrap/bootstrap.exp | 12 +-
ld/testsuite/ld-bootstrap/ppc476.t | 7 +
15 files changed, 1071 insertions(+), 360 deletions(-)
create mode 100644 ld/testsuite/ld-bootstrap/ppc476.t
hooks/post-receive
--
gdb and binutils
More information about the Binutils-cvs
mailing list