Hello community, here is the log from the commit of package gdb checked in at Fri Aug 25 14:59:05 CEST 2006. -------- --- gdb/gdb.changes 2006-08-24 14:20:11.000000000 +0200 +++ gdb/gdb.changes 2006-08-25 13:40:49.000000000 +0200 @@ -1,0 +2,5 @@ +Fri Aug 25 13:40:31 CEST 2006 - schwab@suse.de + +- Minimal support for .gnu.hash. + +------------------------------------------------------------------- New: ---- gnu-hash.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gdb.spec ++++++ --- /var/tmp/diff_new_pack.8WJgD5/_old 2006-08-25 14:58:25.000000000 +0200 +++ /var/tmp/diff_new_pack.8WJgD5/_new 2006-08-25 14:58:25.000000000 +0200 @@ -21,7 +21,7 @@ Autoreqprov: on PreReq: %{install_info_prereq} Version: 6.5 -Release: 5 +Release: 6 Summary: The GNU Debugger Source: gdb-%{version}.tar.bz2 Patch1: gdb-misc.patch @@ -32,6 +32,7 @@ Patch7: ppc-dwarf2-cfi.patch Patch8: pie-relocate.diff Patch9: mst-solib-trampoline.diff +Patch10: gnu-hash.diff Patch11: loader_break.diff Patch12: ppc-long-double.diff Patch13: lr-frame-offset.diff @@ -74,6 +75,7 @@ %patch7 %patch8 %patch9 +%patch10 cd gdb %patch11 cd .. @@ -139,6 +141,8 @@ %endif %changelog -n gdb +* Fri Aug 25 2006 - schwab@suse.de +- Minimal support for .gnu.hash. * Thu Aug 24 2006 - schwab@suse.de - Fix off-by-one in add_symbol_file_command [#200831]. * Fri Aug 11 2006 - schwab@suse.de ++++++ gnu-hash.diff ++++++ Index: bfd/elf.c =================================================================== RCS file: /cvs/src/src/bfd/elf.c,v retrieving revision 1.347 retrieving revision 1.348 diff -u -a -p -u -p -a -r1.347 -r1.348 --- bfd/elf.c 23 Jun 2006 02:58:00 -0000 1.347 +++ bfd/elf.c 10 Jul 2006 21:40:23 -0000 1.348 @@ -206,6 +206,21 @@ bfd_elf_hash (const char *namearg) return h & 0xffffffff; } +/* DT_GNU_HASH hash function. Do not change this function; you will + cause invalid hash tables to be generated. */ + +unsigned long +bfd_elf_gnu_hash (const char *namearg) +{ + const unsigned char *name = (const unsigned char *) namearg; + unsigned long h = 5381; + unsigned char ch; + + while ((ch = *name++) != '\0') + h = (h << 5) + h + ch; + return h & 0xffffffff; +} + bfd_boolean bfd_elf_mkobject (bfd *abfd) { @@ -1240,6 +1255,7 @@ _bfd_elf_print_private_bfd_data (bfd *ab case DT_AUXILIARY: name = "AUXILIARY"; stringp = TRUE; break; case DT_USED: name = "USED"; break; case DT_FILTER: name = "FILTER"; stringp = TRUE; break; + case DT_GNU_HASH: name = "GNU_HASH"; break; } fprintf (f, " %-11s ", name); @@ -1824,6 +1840,7 @@ bfd_section_from_shdr (bfd *abfd, unsign case SHT_FINI_ARRAY: /* .fini_array section. */ case SHT_PREINIT_ARRAY: /* .preinit_array section. */ case SHT_GNU_LIBLIST: /* .gnu.liblist section. */ + case SHT_GNU_HASH: /* .gnu.hash section. */ return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); case SHT_DYNAMIC: /* Dynamic linking information. */ @@ -2296,6 +2313,7 @@ static const struct bfd_elf_special_sect { ".gnu.version_r", 14, 0, SHT_GNU_verneed, 0 }, { ".gnu.liblist", 12, 0, SHT_GNU_LIBLIST, SHF_ALLOC }, { ".gnu.conflict", 13, 0, SHT_RELA, SHF_ALLOC }, + { ".gnu.hash", 9, 0, SHT_GNU_HASH, SHF_ALLOC }, { NULL, 0, 0, 0, 0 } }; @@ -2812,6 +2830,10 @@ elf_fake_sections (bfd *abfd, asection * case SHT_GROUP: this_hdr->sh_entsize = 4; break; + + case SHT_GNU_HASH: + this_hdr->sh_entsize = bed->s->arch_size == 64 ? 0 : 4; + break; } if ((asect->flags & SEC_ALLOC) != 0) @@ -3257,6 +3279,7 @@ assign_section_numbers (bfd *abfd, struc break; case SHT_HASH: + case SHT_GNU_HASH: case SHT_GNU_versym: /* sh_link is the section header index of the symbol table this hash table or version table is for. */ Index: include/elf/common.h =================================================================== RCS file: /cvs/src/src/include/elf/common.h,v retrieving revision 1.77 retrieving revision 1.78 diff -u -a -p -u -p -a -r1.77 -r1.78 --- include/elf/common.h 17 Feb 2006 14:36:26 -0000 1.77 +++ include/elf/common.h 10 Jul 2006 21:40:23 -0000 1.78 @@ -338,6 +338,7 @@ #define SHT_LOOS 0x60000000 /* First of OS specific semantics */ #define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ +#define SHT_GNU_HASH 0x6ffffff6 /* GNU style symbol hash table */ #define SHT_GNU_LIBLIST 0x6ffffff7 /* List of prelink dependencies */ /* The next three section types are defined by Solaris, and are named @@ -577,6 +578,7 @@ #define DT_VALRNGHI 0x6ffffdff #define DT_ADDRRNGLO 0x6ffffe00 +#define DT_GNU_HASH 0x6ffffef5 #define DT_TLSDESC_PLT 0x6ffffef6 #define DT_TLSDESC_GOT 0x6ffffef7 #define DT_GNU_CONFLICT 0x6ffffef8 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org