cross/binutils-*: update to 2.30-r2
This commit is contained in:
parent
d486aae01c
commit
1ed23588a3
6 changed files with 288 additions and 3 deletions
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
pkgname="binutils-aarch64"
|
pkgname="binutils-aarch64"
|
||||||
pkgver=2.30
|
pkgver=2.30
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="Tools necessary to build programs for aarch64 targets"
|
pkgdesc="Tools necessary to build programs for aarch64 targets"
|
||||||
url="https://www.gnu.org/software/binutils/"
|
url="https://www.gnu.org/software/binutils/"
|
||||||
depends=""
|
depends=""
|
||||||
|
@ -16,6 +16,7 @@ arch="armhf x86_64 x86"
|
||||||
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
|
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
|
||||||
subpackages=""
|
subpackages=""
|
||||||
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
|
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
|
||||||
|
fix-powerpc64-out-ot-line-save-restore.patch
|
||||||
binutils-ld-fix-static-linking.patch
|
binutils-ld-fix-static-linking.patch
|
||||||
gold-mips.patch
|
gold-mips.patch
|
||||||
"
|
"
|
||||||
|
@ -61,5 +62,6 @@ package() {
|
||||||
|
|
||||||
|
|
||||||
sha512sums="c3ce91aa20f058ec589bf18c722bf651331b394db6378900cc813cc0eea3a331a96584d5ae090630b627369510397dccc9edfcd43d4aeefc99579f277a05c72c binutils-2.30.tar.bz2
|
sha512sums="c3ce91aa20f058ec589bf18c722bf651331b394db6378900cc813cc0eea3a331a96584d5ae090630b627369510397dccc9edfcd43d4aeefc99579f277a05c72c binutils-2.30.tar.bz2
|
||||||
|
29791af5a09387d16fc4272dc7a10f71aed5a13187187af533bbe365506d6e6b581030d3f9bb4b7d8e300fb29b8b37b5f48027d86e33a8395b1a6d2dfb2d895a fix-powerpc64-out-ot-line-save-restore.patch
|
||||||
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
|
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
|
||||||
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
|
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
From d66deb71f1537e2e30dccdfda22eed5d46ec47eb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alan Modra <amodra@gmail.com>
|
||||||
|
Date: Wed, 14 Mar 2018 22:09:33 +1030
|
||||||
|
Subject: [PATCH] PowerPC64 debian bug 886264, out-of-line save/restore
|
||||||
|
functions
|
||||||
|
|
||||||
|
This calculation in relocate_section
|
||||||
|
|
||||||
|
if (stub_entry->stub_type == ppc_stub_save_res)
|
||||||
|
relocation += (stub_sec->output_offset
|
||||||
|
+ stub_sec->output_section->vma
|
||||||
|
+ stub_sec->size - htab->sfpr->size
|
||||||
|
- htab->sfpr->output_offset
|
||||||
|
- htab->sfpr->output_section->vma);
|
||||||
|
|
||||||
|
to adjust from the original out-of-line save/restore function address
|
||||||
|
in sfpr to a copy at the end of stub_sec goes wrong when stub_sec is
|
||||||
|
padded, because the copy is no longer at the end of stub_sec. The
|
||||||
|
solution is to pad before copying sfpr, so the copy is always at the
|
||||||
|
end of stub_sec.
|
||||||
|
|
||||||
|
* elf64-ppc.c (sfpr_define): Adjust for stub_sec size having
|
||||||
|
sfpr size added before defining alias symbols.
|
||||||
|
(ppc64_elf_build_stubs): Add stub section padding before
|
||||||
|
copying sfpr contents and defining save/restore alias symbols.
|
||||||
|
|
||||||
|
(cherry picked from commit 7dda8d3cf3b089bb7e03c4cdbec827fc6a188c88)
|
||||||
|
---
|
||||||
|
bfd/ChangeLog | 9 +++++++++
|
||||||
|
bfd/elf64-ppc.c | 33 ++++++++++++++++++---------------
|
||||||
|
2 files changed, 27 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
|
||||||
|
index 6fcdff0..039294f 100644
|
||||||
|
--- a/bfd/elf64-ppc.c
|
||||||
|
+++ b/bfd/elf64-ppc.c
|
||||||
|
@@ -6645,7 +6645,7 @@ sfpr_define (struct bfd_link_info *info,
|
||||||
|
{
|
||||||
|
s->root.type = bfd_link_hash_defined;
|
||||||
|
s->root.u.def.section = stub_sec;
|
||||||
|
- s->root.u.def.value = (stub_sec->size
|
||||||
|
+ s->root.u.def.value = (stub_sec->size - htab->sfpr->size
|
||||||
|
+ h->elf.root.u.def.value);
|
||||||
|
s->ref_regular = 1;
|
||||||
|
s->def_regular = 1;
|
||||||
|
@@ -13232,20 +13232,7 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
|
||||||
|
|
||||||
|
for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
if (group->needs_save_res)
|
||||||
|
- {
|
||||||
|
- stub_sec = group->stub_sec;
|
||||||
|
- memcpy (stub_sec->contents + stub_sec->size, htab->sfpr->contents,
|
||||||
|
- htab->sfpr->size);
|
||||||
|
- if (htab->params->emit_stub_syms)
|
||||||
|
- {
|
||||||
|
- unsigned int i;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
|
||||||
|
- if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
|
||||||
|
- return FALSE;
|
||||||
|
- }
|
||||||
|
- stub_sec->size += htab->sfpr->size;
|
||||||
|
- }
|
||||||
|
+ group->stub_sec->size += htab->sfpr->size;
|
||||||
|
|
||||||
|
if (htab->relbrlt != NULL)
|
||||||
|
htab->relbrlt->reloc_count = 0;
|
||||||
|
@@ -13259,6 +13246,22 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
|
||||||
|
}
|
||||||
|
|
||||||
|
for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
+ if (group->needs_save_res)
|
||||||
|
+ {
|
||||||
|
+ stub_sec = group->stub_sec;
|
||||||
|
+ memcpy (stub_sec->contents + stub_sec->size - htab->sfpr->size,
|
||||||
|
+ htab->sfpr->contents, htab->sfpr->size);
|
||||||
|
+ if (htab->params->emit_stub_syms)
|
||||||
|
+ {
|
||||||
|
+ unsigned int i;
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
|
||||||
|
+ if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
if ((stub_sec = group->stub_sec) != NULL)
|
||||||
|
{
|
||||||
|
stub_sec_count += 1;
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
pkgname="binutils-armhf"
|
pkgname="binutils-armhf"
|
||||||
pkgver=2.30
|
pkgver=2.30
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="Tools necessary to build programs for armhf targets"
|
pkgdesc="Tools necessary to build programs for armhf targets"
|
||||||
url="https://www.gnu.org/software/binutils/"
|
url="https://www.gnu.org/software/binutils/"
|
||||||
depends=""
|
depends=""
|
||||||
|
@ -16,6 +16,7 @@ arch="aarch64 x86_64 x86"
|
||||||
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
|
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
|
||||||
subpackages=""
|
subpackages=""
|
||||||
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
|
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
|
||||||
|
fix-powerpc64-out-ot-line-save-restore.patch
|
||||||
binutils-ld-fix-static-linking.patch
|
binutils-ld-fix-static-linking.patch
|
||||||
gold-mips.patch
|
gold-mips.patch
|
||||||
"
|
"
|
||||||
|
@ -61,5 +62,6 @@ package() {
|
||||||
|
|
||||||
|
|
||||||
sha512sums="c3ce91aa20f058ec589bf18c722bf651331b394db6378900cc813cc0eea3a331a96584d5ae090630b627369510397dccc9edfcd43d4aeefc99579f277a05c72c binutils-2.30.tar.bz2
|
sha512sums="c3ce91aa20f058ec589bf18c722bf651331b394db6378900cc813cc0eea3a331a96584d5ae090630b627369510397dccc9edfcd43d4aeefc99579f277a05c72c binutils-2.30.tar.bz2
|
||||||
|
29791af5a09387d16fc4272dc7a10f71aed5a13187187af533bbe365506d6e6b581030d3f9bb4b7d8e300fb29b8b37b5f48027d86e33a8395b1a6d2dfb2d895a fix-powerpc64-out-ot-line-save-restore.patch
|
||||||
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
|
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
|
||||||
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
|
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
From d66deb71f1537e2e30dccdfda22eed5d46ec47eb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alan Modra <amodra@gmail.com>
|
||||||
|
Date: Wed, 14 Mar 2018 22:09:33 +1030
|
||||||
|
Subject: [PATCH] PowerPC64 debian bug 886264, out-of-line save/restore
|
||||||
|
functions
|
||||||
|
|
||||||
|
This calculation in relocate_section
|
||||||
|
|
||||||
|
if (stub_entry->stub_type == ppc_stub_save_res)
|
||||||
|
relocation += (stub_sec->output_offset
|
||||||
|
+ stub_sec->output_section->vma
|
||||||
|
+ stub_sec->size - htab->sfpr->size
|
||||||
|
- htab->sfpr->output_offset
|
||||||
|
- htab->sfpr->output_section->vma);
|
||||||
|
|
||||||
|
to adjust from the original out-of-line save/restore function address
|
||||||
|
in sfpr to a copy at the end of stub_sec goes wrong when stub_sec is
|
||||||
|
padded, because the copy is no longer at the end of stub_sec. The
|
||||||
|
solution is to pad before copying sfpr, so the copy is always at the
|
||||||
|
end of stub_sec.
|
||||||
|
|
||||||
|
* elf64-ppc.c (sfpr_define): Adjust for stub_sec size having
|
||||||
|
sfpr size added before defining alias symbols.
|
||||||
|
(ppc64_elf_build_stubs): Add stub section padding before
|
||||||
|
copying sfpr contents and defining save/restore alias symbols.
|
||||||
|
|
||||||
|
(cherry picked from commit 7dda8d3cf3b089bb7e03c4cdbec827fc6a188c88)
|
||||||
|
---
|
||||||
|
bfd/ChangeLog | 9 +++++++++
|
||||||
|
bfd/elf64-ppc.c | 33 ++++++++++++++++++---------------
|
||||||
|
2 files changed, 27 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
|
||||||
|
index 6fcdff0..039294f 100644
|
||||||
|
--- a/bfd/elf64-ppc.c
|
||||||
|
+++ b/bfd/elf64-ppc.c
|
||||||
|
@@ -6645,7 +6645,7 @@ sfpr_define (struct bfd_link_info *info,
|
||||||
|
{
|
||||||
|
s->root.type = bfd_link_hash_defined;
|
||||||
|
s->root.u.def.section = stub_sec;
|
||||||
|
- s->root.u.def.value = (stub_sec->size
|
||||||
|
+ s->root.u.def.value = (stub_sec->size - htab->sfpr->size
|
||||||
|
+ h->elf.root.u.def.value);
|
||||||
|
s->ref_regular = 1;
|
||||||
|
s->def_regular = 1;
|
||||||
|
@@ -13232,20 +13232,7 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
|
||||||
|
|
||||||
|
for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
if (group->needs_save_res)
|
||||||
|
- {
|
||||||
|
- stub_sec = group->stub_sec;
|
||||||
|
- memcpy (stub_sec->contents + stub_sec->size, htab->sfpr->contents,
|
||||||
|
- htab->sfpr->size);
|
||||||
|
- if (htab->params->emit_stub_syms)
|
||||||
|
- {
|
||||||
|
- unsigned int i;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
|
||||||
|
- if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
|
||||||
|
- return FALSE;
|
||||||
|
- }
|
||||||
|
- stub_sec->size += htab->sfpr->size;
|
||||||
|
- }
|
||||||
|
+ group->stub_sec->size += htab->sfpr->size;
|
||||||
|
|
||||||
|
if (htab->relbrlt != NULL)
|
||||||
|
htab->relbrlt->reloc_count = 0;
|
||||||
|
@@ -13259,6 +13246,22 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
|
||||||
|
}
|
||||||
|
|
||||||
|
for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
+ if (group->needs_save_res)
|
||||||
|
+ {
|
||||||
|
+ stub_sec = group->stub_sec;
|
||||||
|
+ memcpy (stub_sec->contents + stub_sec->size - htab->sfpr->size,
|
||||||
|
+ htab->sfpr->contents, htab->sfpr->size);
|
||||||
|
+ if (htab->params->emit_stub_syms)
|
||||||
|
+ {
|
||||||
|
+ unsigned int i;
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
|
||||||
|
+ if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
if ((stub_sec = group->stub_sec) != NULL)
|
||||||
|
{
|
||||||
|
stub_sec_count += 1;
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
pkgname="binutils-x86_64"
|
pkgname="binutils-x86_64"
|
||||||
pkgver=2.30
|
pkgver=2.30
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="Tools necessary to build programs for x86_64 targets"
|
pkgdesc="Tools necessary to build programs for x86_64 targets"
|
||||||
url="https://www.gnu.org/software/binutils/"
|
url="https://www.gnu.org/software/binutils/"
|
||||||
depends=""
|
depends=""
|
||||||
|
@ -16,6 +16,7 @@ arch="armhf aarch64 x86"
|
||||||
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
|
license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
|
||||||
subpackages=""
|
subpackages=""
|
||||||
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
|
source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
|
||||||
|
fix-powerpc64-out-ot-line-save-restore.patch
|
||||||
binutils-ld-fix-static-linking.patch
|
binutils-ld-fix-static-linking.patch
|
||||||
gold-mips.patch
|
gold-mips.patch
|
||||||
"
|
"
|
||||||
|
@ -61,5 +62,6 @@ package() {
|
||||||
|
|
||||||
|
|
||||||
sha512sums="c3ce91aa20f058ec589bf18c722bf651331b394db6378900cc813cc0eea3a331a96584d5ae090630b627369510397dccc9edfcd43d4aeefc99579f277a05c72c binutils-2.30.tar.bz2
|
sha512sums="c3ce91aa20f058ec589bf18c722bf651331b394db6378900cc813cc0eea3a331a96584d5ae090630b627369510397dccc9edfcd43d4aeefc99579f277a05c72c binutils-2.30.tar.bz2
|
||||||
|
29791af5a09387d16fc4272dc7a10f71aed5a13187187af533bbe365506d6e6b581030d3f9bb4b7d8e300fb29b8b37b5f48027d86e33a8395b1a6d2dfb2d895a fix-powerpc64-out-ot-line-save-restore.patch
|
||||||
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
|
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
|
||||||
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
|
f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch"
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
From d66deb71f1537e2e30dccdfda22eed5d46ec47eb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alan Modra <amodra@gmail.com>
|
||||||
|
Date: Wed, 14 Mar 2018 22:09:33 +1030
|
||||||
|
Subject: [PATCH] PowerPC64 debian bug 886264, out-of-line save/restore
|
||||||
|
functions
|
||||||
|
|
||||||
|
This calculation in relocate_section
|
||||||
|
|
||||||
|
if (stub_entry->stub_type == ppc_stub_save_res)
|
||||||
|
relocation += (stub_sec->output_offset
|
||||||
|
+ stub_sec->output_section->vma
|
||||||
|
+ stub_sec->size - htab->sfpr->size
|
||||||
|
- htab->sfpr->output_offset
|
||||||
|
- htab->sfpr->output_section->vma);
|
||||||
|
|
||||||
|
to adjust from the original out-of-line save/restore function address
|
||||||
|
in sfpr to a copy at the end of stub_sec goes wrong when stub_sec is
|
||||||
|
padded, because the copy is no longer at the end of stub_sec. The
|
||||||
|
solution is to pad before copying sfpr, so the copy is always at the
|
||||||
|
end of stub_sec.
|
||||||
|
|
||||||
|
* elf64-ppc.c (sfpr_define): Adjust for stub_sec size having
|
||||||
|
sfpr size added before defining alias symbols.
|
||||||
|
(ppc64_elf_build_stubs): Add stub section padding before
|
||||||
|
copying sfpr contents and defining save/restore alias symbols.
|
||||||
|
|
||||||
|
(cherry picked from commit 7dda8d3cf3b089bb7e03c4cdbec827fc6a188c88)
|
||||||
|
---
|
||||||
|
bfd/ChangeLog | 9 +++++++++
|
||||||
|
bfd/elf64-ppc.c | 33 ++++++++++++++++++---------------
|
||||||
|
2 files changed, 27 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
|
||||||
|
index 6fcdff0..039294f 100644
|
||||||
|
--- a/bfd/elf64-ppc.c
|
||||||
|
+++ b/bfd/elf64-ppc.c
|
||||||
|
@@ -6645,7 +6645,7 @@ sfpr_define (struct bfd_link_info *info,
|
||||||
|
{
|
||||||
|
s->root.type = bfd_link_hash_defined;
|
||||||
|
s->root.u.def.section = stub_sec;
|
||||||
|
- s->root.u.def.value = (stub_sec->size
|
||||||
|
+ s->root.u.def.value = (stub_sec->size - htab->sfpr->size
|
||||||
|
+ h->elf.root.u.def.value);
|
||||||
|
s->ref_regular = 1;
|
||||||
|
s->def_regular = 1;
|
||||||
|
@@ -13232,20 +13232,7 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
|
||||||
|
|
||||||
|
for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
if (group->needs_save_res)
|
||||||
|
- {
|
||||||
|
- stub_sec = group->stub_sec;
|
||||||
|
- memcpy (stub_sec->contents + stub_sec->size, htab->sfpr->contents,
|
||||||
|
- htab->sfpr->size);
|
||||||
|
- if (htab->params->emit_stub_syms)
|
||||||
|
- {
|
||||||
|
- unsigned int i;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
|
||||||
|
- if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
|
||||||
|
- return FALSE;
|
||||||
|
- }
|
||||||
|
- stub_sec->size += htab->sfpr->size;
|
||||||
|
- }
|
||||||
|
+ group->stub_sec->size += htab->sfpr->size;
|
||||||
|
|
||||||
|
if (htab->relbrlt != NULL)
|
||||||
|
htab->relbrlt->reloc_count = 0;
|
||||||
|
@@ -13259,6 +13246,22 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
|
||||||
|
}
|
||||||
|
|
||||||
|
for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
+ if (group->needs_save_res)
|
||||||
|
+ {
|
||||||
|
+ stub_sec = group->stub_sec;
|
||||||
|
+ memcpy (stub_sec->contents + stub_sec->size - htab->sfpr->size,
|
||||||
|
+ htab->sfpr->contents, htab->sfpr->size);
|
||||||
|
+ if (htab->params->emit_stub_syms)
|
||||||
|
+ {
|
||||||
|
+ unsigned int i;
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < ARRAY_SIZE (save_res_funcs); i++)
|
||||||
|
+ if (!sfpr_define (info, &save_res_funcs[i], stub_sec))
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for (group = htab->group; group != NULL; group = group->next)
|
||||||
|
if ((stub_sec = group->stub_sec) != NULL)
|
||||||
|
{
|
||||||
|
stub_sec_count += 1;
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
Loading…
Reference in a new issue