diff options
author | mycroft <mycroft> | 2000-06-11 23:42:13 +0000 |
---|---|---|
committer | mycroft <mycroft> | 2000-06-11 23:42:13 +0000 |
commit | 27423111b9dfd6af7f626e1a38b03520f93e9213 (patch) | |
tree | 4325f565b5408ead0e50bb9e825172d6d950a37f /cross | |
parent | f24dfa37a7a1546d1cb9129e084fddd5cdaeeaf5 (diff) | |
download | pkgsrc-27423111b9dfd6af7f626e1a38b03520f93e9213.tar.gz |
Fix problems with uninitialized data, mostly on MIPS.
Diffstat (limited to 'cross')
-rw-r--r-- | cross/binutils/patches/patch-ac | 36 | ||||
-rw-r--r-- | cross/binutils/patches/patch-al | 20 |
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; + |