[crash] Fixes for gcc-4.6 -Werror compile failures in gdb module.

David Anderson crash at fedoraproject.org
Fri Feb 25 16:04:18 UTC 2011


commit bdd1ef6034df2e9017ea3f6cf1627eafcd0e7501
Author: Dave Anderson <anderson at redhat.com>
Date:   Fri Feb 25 11:04:01 2011 -0500

    Fixes for gcc-4.6 -Werror compile failures in gdb module.

 crash.spec             |    7 +-
 gdb_Werror_fixes.patch |  241 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 247 insertions(+), 1 deletions(-)
---
diff --git a/crash.spec b/crash.spec
index a44d243..84b35da 100644
--- a/crash.spec
+++ b/crash.spec
@@ -4,7 +4,7 @@
 Summary: Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles
 Name: crash
 Version: 5.1.2
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2
 Group: Development/Debuggers
 Source: http://people.redhat.com/anderson/crash-%{version}.tar.gz
@@ -14,6 +14,7 @@ ExclusiveArch: %{ix86} ia64 x86_64 ppc64 s390 s390x
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot-%(%{__id_u} -n)
 BuildRequires: ncurses-devel zlib-devel
 Requires: binutils
+Patch0: gdb_Werror_fixes.patch
 
 %description
 The core analysis suite is a self-contained tool that can be used to
@@ -34,6 +35,7 @@ offered by Mission Critical Linux, or the LKCD kernel patch.
 
 %prep
 %setup -n %{name}-%{version} -q
+%patch0 -p1 -b gdb_Werror_fixes.patch
 
 %build
 make RPMPKG="%{version}-%{release}" CFLAGS="%{optflags}"
@@ -62,6 +64,9 @@ rm -rf %{buildroot}
 %{_includedir}/*
 
 %changelog
+* Wed Feb 25 2011 Dave Anderson <anderson at redhat.com> - 5.1.2-2
+- Fixes for gcc-4.6 -Werror compile failures in gdb module.  
+
 * Wed Feb 23 2011 Dave Anderson <anderson at redhat.com> - 5.1.2-1
 - Upstream version.
 
diff --git a/gdb_Werror_fixes.patch b/gdb_Werror_fixes.patch
new file mode 100644
index 0000000..4e79f90
--- /dev/null
+++ b/gdb_Werror_fixes.patch
@@ -0,0 +1,241 @@
+--- crash-5.1.2/gdb-7.0.patch.orig
++++ crash-5.1.2/gdb-7.0.patch
+@@ -1316,3 +1316,238 @@
+  
+        if (! verilog_write_record (abfd,
+  				  location,
++--- gdb-7.0/bfd/elf64-x86-64.c.orig
+++++ gdb-7.0/bfd/elf64-x86-64.c
++@@ -2628,7 +2628,7 @@ elf64_x86_64_relocate_section (bfd *outp
++ 	}
++       else
++ 	{
++-	  bfd_boolean warned;
+++	  bfd_boolean warned ATTRIBUTE_UNUSED;
++ 
++ 	  RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
++ 				   r_symndx, symtab_hdr, sym_hashes,
++@@ -3284,10 +3284,9 @@ elf64_x86_64_relocate_section (bfd *outp
++ 		     movl $x at tpoff, %rax
++ 		   */
++ 
++-		  unsigned int val, type, type2;
+++		  unsigned int val, type;
++ 
++ 		  type = bfd_get_8 (input_bfd, contents + roff - 3);
++-		  type2 = bfd_get_8 (input_bfd, contents + roff - 2);
++ 		  val = bfd_get_8 (input_bfd, contents + roff - 1);
++ 		  bfd_put_8 (output_bfd, 0x48 | ((type >> 2) & 1),
++ 			     contents + roff - 3);
++@@ -3532,12 +3531,6 @@ elf64_x86_64_relocate_section (bfd *outp
++ 		     movq x at gottpoff(%rip), %rax # before xchg %ax,%ax
++ 		   */
++ 
++-		  unsigned int val, type, type2;
++-
++-		  type = bfd_get_8 (input_bfd, contents + roff - 3);
++-		  type2 = bfd_get_8 (input_bfd, contents + roff - 2);
++-		  val = bfd_get_8 (input_bfd, contents + roff - 1);
++-
++ 		  /* Now modify the instruction as appropriate. To
++ 		     turn a leaq into a movq in the form we use it, it
++ 		     suffices to change the second byte from 0x8d to
++@@ -3563,10 +3556,6 @@ elf64_x86_64_relocate_section (bfd *outp
++ 		     Change it to:
++ 		     xchg %ax,%ax.  */
++ 
++-		  unsigned int val, type;
++-
++-		  type = bfd_get_8 (input_bfd, contents + roff);
++-		  val = bfd_get_8 (input_bfd, contents + roff + 1);
++ 		  bfd_put_8 (output_bfd, 0x66, contents + roff);
++ 		  bfd_put_8 (output_bfd, 0x90, contents + roff + 1);
++ 		  continue;
++--- gdb-7.0/bfd/elf.c.orig
+++++ gdb-7.0/bfd/elf.c
++@@ -4832,7 +4832,6 @@ static bfd_boolean
++ prep_headers (bfd *abfd)
++ {
++   Elf_Internal_Ehdr *i_ehdrp;	/* Elf file header, internal form */
++-  Elf_Internal_Phdr *i_phdrp = 0; /* Program header table, internal form */
++   struct elf_strtab_hash *shstrtab;
++   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
++ 
++@@ -4900,7 +4899,6 @@ prep_headers (bfd *abfd)
++   else
++     {
++       i_ehdrp->e_phentsize = 0;
++-      i_phdrp = 0;
++       i_ehdrp->e_phoff = 0;
++     }
++ 
++@@ -4948,7 +4946,6 @@ bfd_boolean
++ _bfd_elf_write_object_contents (bfd *abfd)
++ {
++   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
++-  Elf_Internal_Ehdr *i_ehdrp;
++   Elf_Internal_Shdr **i_shdrp;
++   bfd_boolean failed;
++   unsigned int count, num_sec;
++@@ -4958,7 +4955,6 @@ _bfd_elf_write_object_contents (bfd *abf
++     return FALSE;
++ 
++   i_shdrp = elf_elfsections (abfd);
++-  i_ehdrp = elf_elfheader (abfd);
++ 
++   failed = FALSE;
++   bfd_map_over_sections (abfd, bed->s->write_relocs, &failed);
++--- gdb-7.0/bfd/elf-eh-frame.c.orig
+++++ gdb-7.0/bfd/elf-eh-frame.c
++@@ -1241,8 +1241,6 @@ _bfd_elf_eh_frame_section_offset (bfd *o
++ 				  bfd_vma offset)
++ {
++   struct eh_frame_sec_info *sec_info;
++-  struct elf_link_hash_table *htab;
++-  struct eh_frame_hdr_info *hdr_info;
++   unsigned int lo, hi, mid;
++ 
++   if (sec->sec_info_type != ELF_INFO_TYPE_EH_FRAME)
++@@ -1252,9 +1250,6 @@ _bfd_elf_eh_frame_section_offset (bfd *o
++   if (offset >= sec->rawsize)
++     return offset - sec->rawsize + sec->size;
++ 
++-  htab = elf_hash_table (info);
++-  hdr_info = &htab->eh_info;
++-
++   lo = 0;
++   hi = sec_info->count;
++   mid = 0;
++--- gdb-7.0/bfd/elf-eh-frame.c.orig
+++++ gdb-7.0/bfd/elf-eh-frame.c
++@@ -1236,7 +1236,7 @@ _bfd_elf_maybe_strip_eh_frame_hdr (struc
++ 
++ bfd_vma
++ _bfd_elf_eh_frame_section_offset (bfd *output_bfd ATTRIBUTE_UNUSED,
++-				  struct bfd_link_info *info,
+++				  struct bfd_link_info *info ATTRIBUTE_UNUSED,
++ 				  asection *sec,
++ 				  bfd_vma offset)
++ {
++--- gdb-7.0/bfd/elf32-i386.c.orig
+++++ gdb-7.0/bfd/elf32-i386.c
++@@ -2909,7 +2909,7 @@ elf_i386_relocate_section (bfd *output_b
++ 	}
++       else
++ 	{
++-	  bfd_boolean warned;
+++	  bfd_boolean warned ATTRIBUTE_UNUSED;
++ 
++ 	  RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
++ 				   r_symndx, symtab_hdr, sym_hashes,
++--- gdb-7.0/bfd/aoutx.h.orig
+++++ gdb-7.0/bfd/aoutx.h
++@@ -5233,8 +5233,6 @@ aout_link_write_symbols (struct aout_fin
++ static bfd_boolean
++ aout_link_input_bfd (struct aout_final_link_info *finfo, bfd *input_bfd)
++ {
++-  bfd_size_type sym_count;
++-
++   BFD_ASSERT (bfd_get_format (input_bfd) == bfd_object);
++ 
++   /* If this is a dynamic object, it may need special handling.  */
++@@ -5248,8 +5246,6 @@ aout_link_input_bfd (struct aout_final_l
++   if (! aout_get_external_symbols (input_bfd))
++     return FALSE;
++ 
++-  sym_count = obj_aout_external_sym_count (input_bfd);
++-
++   /* Write out the symbols and get a map of the new indices.  The map
++      is placed into finfo->symbol_map.  */
++   if (! aout_link_write_symbols (finfo, input_bfd))
++--- gdb-7.0/bfd/peXXigen.c.orig
+++++ gdb-7.0/bfd/peXXigen.c
++@@ -1919,7 +1919,6 @@ pe_print_reloc (bfd * abfd, void * vfile
++   FILE *file = (FILE *) vfile;
++   bfd_byte *data = 0;
++   asection *section = bfd_get_section_by_name (abfd, ".reloc");
++-  bfd_size_type datasize;
++   bfd_size_type i;
++   bfd_size_type start, stop;
++ 
++@@ -1932,7 +1931,6 @@ pe_print_reloc (bfd * abfd, void * vfile
++   fprintf (file,
++ 	   _("\n\nPE File Base Relocations (interpreted .reloc section contents)\n"));
++ 
++-  datasize = section->size;
++   if (! bfd_malloc_and_get_section (abfd, section, &data))
++     {
++       if (data != NULL)
++--- gdb-7.0/bfd/archive64.c.orig
+++++ gdb-7.0/bfd/archive64.c
++@@ -43,7 +43,6 @@ bfd_elf64_archive_slurp_armap (bfd *abfd
++ {
++   struct artdata *ardata = bfd_ardata (abfd);
++   char nextname[17];
++-  file_ptr arhdrpos;
++   bfd_size_type i, parsed_size, nsymz, stringsize, carsym_size, ptrsize;
++   struct areltdata *mapdata;
++   bfd_byte int_buf[8];
++@@ -55,7 +54,6 @@ bfd_elf64_archive_slurp_armap (bfd *abfd
++   ardata->symdefs = NULL;
++ 
++   /* Get the name of the first element.  */
++-  arhdrpos = bfd_tell (abfd);
++   i = bfd_bread (nextname, 16, abfd);
++   if (i == 0)
++     return TRUE;
++--- gdb-7.0/opcodes/i386-dis.c.orig
+++++ gdb-7.0/opcodes/i386-dis.c
++@@ -9410,7 +9410,6 @@ print_insn (bfd_vma pc, disassemble_info
++   int sizeflag;
++   const char *p;
++   struct dis_private priv;
++-  unsigned char op;
++   char prefix_obuf[32];
++   char *prefix_obufp;
++ 
++@@ -9607,8 +9606,6 @@ print_insn (bfd_vma pc, disassemble_info
++       return 1;
++     }
++ 
++-  op = 0;
++-
++   if (*codep == 0x0f)
++     {
++       unsigned char threebyte;
++@@ -11595,7 +11592,6 @@ static void
++ OP_sI (int bytemode, int sizeflag)
++ {
++   bfd_signed_vma op;
++-  bfd_signed_vma mask = -1;
++ 
++   switch (bytemode)
++     {
++@@ -11604,7 +11600,6 @@ OP_sI (int bytemode, int sizeflag)
++       op = *codep++;
++       if ((op & 0x80) != 0)
++ 	op -= 0x100;
++-      mask = 0xffffffff;
++       break;
++     case v_mode:
++       USED_REX (REX_W);
++@@ -11613,11 +11608,9 @@ OP_sI (int bytemode, int sizeflag)
++       else if (sizeflag & DFLAG)
++ 	{
++ 	  op = get32s ();
++-	  mask = 0xffffffff;
++ 	}
++       else
++ 	{
++-	  mask = 0xffffffff;
++ 	  op = get16 ();
++ 	  if ((op & 0x8000) != 0)
++ 	    op -= 0x10000;
++@@ -11626,7 +11619,6 @@ OP_sI (int bytemode, int sizeflag)
++       break;
++     case w_mode:
++       op = get16 ();
++-      mask = 0xffffffff;
++       if ((op & 0x8000) != 0)
++ 	op -= 0x10000;
++       break;


More information about the scm-commits mailing list