rpms/elfutils/devel elfutils-1.07-strip-byteswap.patch, NONE, 1.1 elfutils-portability.patch, 1.5, 1.6 elfutils.spec, 1.25, 1.26

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon May 9 00:31:12 UTC 2005


Author: roland

Update of /cvs/dist/rpms/elfutils/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv5597

Modified Files:
	elfutils-portability.patch elfutils.spec 
Added Files:
	elfutils-1.07-strip-byteswap.patch 
Log Message:
Fix for new bug in strip -f when byte swapping

elfutils-1.07-strip-byteswap.patch:
 strip.c |   25 -------------------------
 1 files changed, 25 deletions(-)

--- NEW FILE elfutils-1.07-strip-byteswap.patch ---
2005-05-08  Roland McGrath  <roland at redhat.com>

	* strip.c (handle_elf): Don't translate hash and versym data formats,
	elf_getdata already did it for us.

--- elfutils/src/strip.c
+++ elfutils/src/strip.c
@@ -1332,11 +1348,6 @@ handle_elf (int fd, Elf *elf, const char
 		  size_t elsize = gelf_fsize (elf, ELF_T_SYM, 1,
 					      ehdr->e_version);
 
-		  /* Convert to the correct byte order.  */
-		  if (gelf_xlatetom (newelf, hashd, hashd,
-				     ehdr->e_ident[EI_DATA]) == NULL)
-		    INTERNAL_ERROR (fname);
-
 		  /* Adjust the nchain value.  The symbol table size
 		     changed.  We keep the same size for the bucket array.  */
 		  bucket[1] = symd->d_size / elsize;
@@ -1394,11 +1405,6 @@ handle_elf (int fd, Elf *elf, const char
 		  size_t elsize = gelf_fsize (elf, ELF_T_SYM, 1,
 					      ehdr->e_version);
 
-		  /* Convert to the correct byte order.  */
-		  if (gelf_xlatetom (newelf, hashd, hashd,
-				     ehdr->e_ident[EI_DATA]) == NULL)
-		    INTERNAL_ERROR (fname);
-
 		  /* Adjust the nchain value.  The symbol table size
 		     changed.  We keep the same size for the bucket array.  */
 		  bucket[1] = symd->d_size / elsize;
@@ -1444,11 +1450,6 @@ handle_elf (int fd, Elf *elf, const char
 			}
 		    }
 	        }
-
-	      /* Convert back to the file byte order.  */
-	      if (gelf_xlatetof (newelf, hashd, hashd,
-				 ehdr->e_ident[EI_DATA]) == NULL)
-		INTERNAL_ERROR (fname);
 	    }
 	  else if (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)
 	    {
@@ -1476,11 +1477,6 @@ handle_elf (int fd, Elf *elf, const char
 	      Elf_Data *verd = elf_getdata (scn, NULL);
 	      assert (verd != NULL);
 
-	      /* Convert to the correct byte order.  */
-	      if (gelf_xlatetom (newelf, verd, verd,
-				 ehdr->e_ident[EI_DATA]) == NULL)
-		INTERNAL_ERROR (fname);
-
 	      /* The symbol version array.  */
 	      GElf_Half *verstab = (GElf_Half *) verd->d_buf;
 
@@ -1506,11 +1502,6 @@ handle_elf (int fd, Elf *elf, const char
 							 ehdr->e_version),
 			      ehdr->e_version);
 	      (void) gelf_update_shdr (scn, shdr);
-
-	      /* Convert back to the file byte order.  */
-	      if (gelf_xlatetof (newelf, verd, verd,
-				 ehdr->e_ident[EI_DATA]) == NULL)
-		INTERNAL_ERROR (fname);
 	    }
 	  else if (shdr_info[cnt].shdr.sh_type == SHT_GROUP)
 	    {

elfutils-portability.patch:
 ChangeLog          |   13 ++++++++++++
 Makefile.in        |    1 
 config/Makefile.in |    1 
 configure          |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 configure.ac       |    9 ++++++++
 lib/ChangeLog      |    5 ++++
 lib/Makefile.am    |    3 +-
 lib/Makefile.in    |    5 ++--
 libasm/Makefile.am |    3 +-
 libasm/Makefile.in |    5 ++--
 libcpu/ChangeLog   |    5 ++++
 libcpu/Makefile.am |    3 +-
 libcpu/Makefile.in |    3 +-
 libdw/Makefile.am  |    3 +-
 libdw/Makefile.in  |    5 ++--
 libebl/Makefile.am |    3 +-
 libebl/Makefile.in |    5 ++--
 libelf/Makefile.am |    3 +-
 libelf/Makefile.in |    5 ++--
 m4/Makefile.in     |    1 
 src/Makefile.am    |    5 ++--
 src/Makefile.in    |    5 ++--
 src/findtextrel.c  |    6 ++++-
 src/strip.c        |   20 +++++++++++++++++--
 tests/Makefile.in  |    1 
 25 files changed, 148 insertions(+), 25 deletions(-)

Index: elfutils-portability.patch
===================================================================
RCS file: /cvs/dist/rpms/elfutils/devel/elfutils-portability.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- elfutils-portability.patch	8 May 2005 22:43:51 -0000	1.5
+++ elfutils-portability.patch	9 May 2005 00:30:55 -0000	1.6
@@ -84,7 +84,7 @@
 +  ac_status=$?
 +  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 +  (exit $ac_status); }; }; then
-+  ac_cv_cc_wextra
++  ac_cv_cc_wextra=yes
 +else
 +  echo "$as_me: failed program was:" >&5
 +sed 's/^/| /' conftest.$ac_ext >&5
@@ -125,7 +125,7 @@
 +old_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wextra"
 +AC_COMPILE_IFELSE([void foo (void) { }],
-+		  ac_cv_cc_wextra, ac_cv_cc_wextra=no)
++		  ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no)
 +CFLAGS="$old_CFLAGS"])
 +AC_SUBST(WEXTRA)
 +AS_IF([test "x$ac_cv_cc_wextra" = yes], [WEXTRA=-Wextra], [WEXTRA=-W])


Index: elfutils.spec
===================================================================
RCS file: /cvs/dist/rpms/elfutils/devel/elfutils.spec,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- elfutils.spec	8 May 2005 22:43:51 -0000	1.25
+++ elfutils.spec	9 May 2005 00:30:55 -0000	1.26
@@ -1,5 +1,5 @@
 %define version 0.107
-%define release 1
+%define release 2
 
 %define gpl 0
 %if %{?_with_compat:1}%{!?_with_compat:0}
@@ -26,6 +26,7 @@
 Source: elfutils-%{version}.tar.gz
 Patch1: elfutils-portability.patch
 Patch2: elfutils-bswap.patch
+Patch3: elfutils-1.07-strip-byteswap.patch
 Obsoletes: libelf libelf-devel
 Requires: elfutils-libelf = %{version}-%{release}
 %if %{gpl}
@@ -116,6 +117,8 @@
 find . \( -name configure -o -name config.h.in \) -print | xargs touch
 %endif
 
+%patch3 -p1
+
 %build
 mkdir build-%{_target_platform}
 cd build-%{_target_platform}
@@ -219,6 +222,9 @@
 %{_libdir}/libelf.so
 
 %changelog
+* Sun May  8 2005 Roland McGrath <roland at redhat.com> - 0.107-2
+- fix strip -f byte-swapping bug
+
 * Sun May  8 2005 Roland McGrath <roland at redhat.com> - 0.107-1
 - update to 0.107
   - readelf: improve DWARF output format




More information about the fedora-cvs-commits mailing list