summaryrefslogtreecommitdiff
path: root/cross/binutils
diff options
context:
space:
mode:
authormycroft <mycroft@pkgsrc.org>2000-06-11 23:42:13 +0000
committermycroft <mycroft@pkgsrc.org>2000-06-11 23:42:13 +0000
commit8961672d5b5cbf18a0e3d2b974ab0de3d6f59edb (patch)
tree4325f565b5408ead0e50bb9e825172d6d950a37f /cross/binutils
parent3378242b7851cc779765df02863545750f697b1b (diff)
downloadpkgsrc-8961672d5b5cbf18a0e3d2b974ab0de3d6f59edb.tar.gz
Fix problems with uninitialized data, mostly on MIPS.
Diffstat (limited to 'cross/binutils')
-rw-r--r--cross/binutils/patches/patch-ac36
-rw-r--r--cross/binutils/patches/patch-al20
2 files changed, 42 insertions, 14 deletions
diff --git a/cross/binutils/patches/patch-ac b/cross/binutils/patches/patch-ac
index 30a0d7d7e80..39d6f9fb5b2 100644
--- a/cross/binutils/patches/patch-ac
+++ b/cross/binutils/patches/patch-ac
@@ -1,7 +1,7 @@
-$NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
+$NetBSD: patch-ac,v 1.2 2000/06/11 23:42:13 mycroft Exp $
---- ./bfd/elf32-mips.c.orig Fri May 1 11:48:09 1998
-+++ ./bfd/elf32-mips.c Mon Dec 28 17:43:20 1998
+--- bfd/elf32-mips.c.orig Fri May 1 11:48:09 1998
++++ bfd/elf32-mips.c Sun Jun 11 19:33:36 2000
@@ -155,6 +155,11 @@
#define STUB_LI16 0x34180000 /* ori t8,zero,0 */
#define MIPS_FUNCTION_STUB_SIZE (16)
@@ -34,7 +34,19 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
}
else if (strcmp (name, ".got") == 0
|| strcmp (name, ".sdata") == 0
-@@ -3178,8 +3188,11 @@
+@@ -2884,8 +2894,11 @@
+ bfd_h_put_16 (abfd, in->pcreg, (bfd_byte *) ex->p_pcreg);
+
+ bfd_h_put_32 (abfd, in->irpss, (bfd_byte *) ex->p_irpss);
++ bfd_h_put_32 (abfd, 0, (bfd_byte *) ex->p_reserved);
+ #if 0 /* FIXME */
+ ecoff_put_off (abfd, in->exception_info, (bfd_byte *) ex->p_exception_info);
++#else
++ bfd_h_put_32 (abfd, 0, (bfd_byte *) ex->p_exception_info);
+ #endif
+ }
+
+@@ -3178,8 +3191,11 @@
struct mips_elf_link_hash_table
{
struct elf_link_hash_table root;
@@ -46,7 +58,7 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
/* The number of .rtproc entries. */
bfd_size_type procedure_count;
/* The size of the .compact_rel section (if SGI_COMPAT). */
-@@ -3264,7 +3277,6 @@
+@@ -3264,7 +3280,6 @@
bfd *abfd;
{
struct mips_elf_link_hash_table *ret;
@@ -54,7 +66,7 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
ret = ((struct mips_elf_link_hash_table *)
bfd_alloc (abfd, sizeof (struct mips_elf_link_hash_table)));
-@@ -3278,8 +3290,11 @@
+@@ -3278,8 +3293,11 @@
return NULL;
}
@@ -66,7 +78,7 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
ret->procedure_count = 0;
ret->compact_rel_size = 0;
ret->use_rld_obj_head = false;
-@@ -6570,15 +6585,20 @@
+@@ -6570,15 +6588,20 @@
That means we must increment the dynamic symbol index of every
other dynamic symbol. */
{
@@ -90,7 +102,7 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
if (SGI_COMPAT (output_bfd))
{
c = SIZEOF_MIPS_DYNSYM_SECNAMES - 1;
-@@ -6606,6 +6626,7 @@
+@@ -6606,6 +6629,7 @@
}
}
else
@@ -98,7 +110,7 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
{
c = bfd_count_sections (output_bfd);
elf_link_hash_traverse (elf_hash_table (info),
-@@ -6962,8 +6983,11 @@
+@@ -6962,8 +6986,11 @@
break;
case DT_MIPS_UNREFEXTNO:
@@ -111,7 +123,7 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
break;
-@@ -7001,12 +7025,7 @@
+@@ -7001,12 +7028,7 @@
{
asection *sdynsym;
asection *s;
@@ -124,7 +136,7 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
Elf32_compact_rel cpt;
/* Set up the section symbols for the output sections. SGI sets
-@@ -7015,6 +7034,16 @@
+@@ -7015,6 +7037,16 @@
sdynsym = bfd_get_section_by_name (dynobj, ".dynsym");
if (sdynsym != NULL)
{
@@ -141,7 +153,7 @@ $NetBSD: patch-ac,v 1.1 1999/01/04 22:37:31 tv Exp $
if (SGI_COMPAT (output_bfd))
{
sym.st_size = 0;
-@@ -7059,6 +7088,7 @@
+@@ -7059,6 +7091,7 @@
SIZEOF_MIPS_DYNSYM_SECNAMES;
}
else
diff --git a/cross/binutils/patches/patch-al b/cross/binutils/patches/patch-al
index aa969c1c899..0b567191c3d 100644
--- a/cross/binutils/patches/patch-al
+++ b/cross/binutils/patches/patch-al
@@ -1,7 +1,7 @@
-$NetBSD: patch-al,v 1.2 2000/06/11 18:40:26 mycroft Exp $
+$NetBSD: patch-al,v 1.3 2000/06/11 23:42:13 mycroft Exp $
--- bfd/elflink.h.orig Fri May 1 11:48:10 1998
-+++ bfd/elflink.h Sun Jun 11 14:22:40 2000
++++ bfd/elflink.h Sun Jun 11 19:05:47 2000
@@ -719,12 +719,13 @@
}
@@ -17,3 +17,19 @@ $NetBSD: patch-al,v 1.2 2000/06/11 18:40:26 mycroft Exp $
if (! (_bfd_generic_link_add_one_symbol
(info, abfd, name, BSF_WARNING, s, (bfd_vma) 0, msg,
+@@ -2726,11 +2727,13 @@
+ We will build the contents of .dynsym and .hash when we build
+ the final symbol table, because until then we do not know the
+ correct value to give the symbols. We built the .dynstr
+- section as we went along in elf_link_add_object_symbols. */
++ section as we went along in elf_link_add_object_symbols.
++ FIXME: We use bfd_zalloc() here because there may be holes
++ where sections were deleted above. */
+ s = bfd_get_section_by_name (dynobj, ".dynsym");
+ BFD_ASSERT (s != NULL);
+ s->_raw_size = dynsymcount * sizeof (Elf_External_Sym);
+- s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
++ s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size);
+ if (s->contents == NULL && s->_raw_size != 0)
+ return false;
+