Hello community, here is the log from the commit of package binutils checked in at Wed Jun 14 13:05:35 CEST 2006. -------- --- binutils/binutils.changes 2006-06-09 15:28:05.000000000 +0200 +++ binutils/binutils.changes 2006-06-13 17:14:57.000000000 +0200 @@ -1,0 +2,5 @@ +Tue Jun 13 17:14:41 CEST 2006 - schwab@suse.de + +- Handle hash resizing during as-needed processing. + +------------------------------------------------------------------- cross-alpha-binutils.changes: same change cross-arm-binutils.changes: same change cross-avr-binutils.changes: same change cross-hppa-binutils.changes: same change cross-i386-binutils.changes: same change cross-ia64-binutils.changes: same change cross-mips-binutils.changes: same change cross-ppc-binutils.changes: same change cross-ppc64-binutils.changes: same change cross-s390-binutils.changes: same change cross-s390x-binutils.changes: same change cross-sparc-binutils.changes: same change cross-x86_64-binutils.changes: same change Old: ---- disable-hash-resizing.diff New: ---- elf-link-add-object-symbols.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ binutils.spec ++++++ --- /var/tmp/diff_new_pack.LiNXxg/_old 2006-06-14 13:04:56.000000000 +0200 +++ /var/tmp/diff_new_pack.LiNXxg/_new 2006-06-14 13:04:56.000000000 +0200 @@ -49,7 +49,7 @@ %endif Autoreqprov: on Version: 2.17.50.0.2 -Release: 3 +Release: 4 Summary: GNU Binutils Source: ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-%{version}.tar.bz2 Source1: pre_checkin.sh @@ -66,7 +66,7 @@ Patch9: testsuite.diff Patch10: bfd-hash-lookup.diff Patch11: ld-elfvers.diff -Patch12: disable-hash-resizing.diff +Patch12: elf-link-add-object-symbols.diff Patch16: s390-pic-dso.diff Patch17: suse-bdirect.diff Patch18: suse-dynsort.diff @@ -409,6 +409,8 @@ %endif %changelog -n binutils +* Tue Jun 13 2006 - schwab@suse.de +- Handle hash resizing during as-needed processing. * Fri Jun 09 2006 - schwab@suse.de - Disable hash resizing. * Sat Jun 03 2006 - schwab@suse.de cross-alpha-binutils.spec: same change cross-arm-binutils.spec: same change cross-avr-binutils.spec: same change cross-hppa-binutils.spec: same change cross-i386-binutils.spec: same change cross-ia64-binutils.spec: same change cross-mips-binutils.spec: same change cross-ppc-binutils.spec: same change cross-ppc64-binutils.spec: same change cross-s390-binutils.spec: same change cross-s390x-binutils.spec: same change cross-sparc-binutils.spec: same change cross-x86_64-binutils.spec: same change ++++++ elf-link-add-object-symbols.diff ++++++
From nobody Tue Jun 13 16:52:52 2006 From: Alan Modra
Subject: Re: Increment To: binutils@sourceware.org, Andreas Schwab Date: Wed, 14 Jun 2006 00:19:06 +0930 Mail-Followup-To: binutils@sourceware.org, Andreas Schwab
On Wed, Jun 14, 2006 at 12:08:12AM +0930, Alan Modra wrote:
On Tue, Jun 13, 2006 at 12:52:09PM +0200, Andreas Schwab wrote:
ftp://ftp.suse.com/pub/people/schwab/hash-resize-test.tar.gz
The sym table is being resized while an as-needed lib is being loaded. Some extra hash table state needs to be restored, table, size and count.
* elflink.c (elf_link_add_object_symbols): Save and restore struct bfd_hash_table table, size and count fields for as-needed libs. Index: bfd/elflink.c =================================================================== RCS file: /cvs/src/src/bfd/elflink.c,v retrieving revision 1.218 diff -u -p -r1.218 elflink.c --- bfd/elflink.c 12 Jun 2006 11:12:51 -0000 1.218 +++ bfd/elflink.c 13 Jun 2006 14:43:41 -0000 @@ -3080,6 +3080,9 @@ elf_link_add_object_symbols (bfd *abfd, struct elf_link_hash_table *htab; bfd_size_type amt; void *alloc_mark = NULL; + struct bfd_hash_entry **old_table = NULL; + unsigned int old_size = 0; + unsigned int old_count = 0; void *old_tab = NULL; void *old_hash; void *old_ent; @@ -3504,6 +3507,9 @@ elf_link_add_object_symbols (bfd *abfd, memcpy (old_hash, sym_hash, hashsize); old_undefs = htab->root.undefs; old_undefs_tail = htab->root.undefs_tail; + old_table = htab->root.table.table; + old_size = htab->root.table.size; + old_count = htab->root.table.count; old_dynsymcount = htab->dynsymcount; for (i = 0; i < htab->root.table.size; i++) @@ -4151,6 +4157,9 @@ elf_link_add_object_symbols (bfd *abfd, old_hash = (char *) old_tab + tabsize; old_ent = (char *) old_hash + hashsize; sym_hash = elf_sym_hashes (abfd); + htab->root.table.table = old_table; + htab->root.table.size = old_size; + htab->root.table.count = old_count; memcpy (htab->root.table.table, old_tab, tabsize); memcpy (sym_hash, old_hash, hashsize); htab->root.undefs = old_undefs; -- Alan Modra IBM OzLabs - Linux Technology Centre ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit-help@opensuse.org