rpms/rpm/devel rpm-4.4.2-gnuhash.patch, NONE, 1.1 rpm.spec, 1.208, 1.209

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Jul 11 15:37:58 UTC 2006


Author: pnasrat

Update of /cvs/dist/rpms/rpm/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv10578

Modified Files:
	rpm.spec 
Added Files:
	rpm-4.4.2-gnuhash.patch 
Log Message:
Detect and provide a requirement for DT_GNU_HASH


rpm-4.4.2-gnuhash.patch:
 build/rpmfc.c  |   18 ++++++++++++++++++
 rpmdb/legacy.c |    3 +++
 2 files changed, 21 insertions(+)

--- NEW FILE rpm-4.4.2-gnuhash.patch ---
--- rpm-4.4.2/build/rpmfc.c.gnuhash	2006-07-11 07:05:43.000000000 -0400
+++ rpm-4.4.2/build/rpmfc.c	2006-07-11 07:09:08.000000000 -0400
@@ -879,6 +879,8 @@
     int isDSO;
     int gotSONAME = 0;
     int gotDEBUG = 0;
+    int gotHASH = 0;
+    int gotGNUHASH = 0;
     static int filter_GLIBC_PRIVATE = 0;
     static int oneshot = 0;
 
@@ -1051,6 +1053,12 @@
 		    default:
 			/*@innercontinue@*/ continue;
 			/*@notreached@*/ /*@switchbreak@*/ break;
+                    case DT_HASH:    
+			gotHASH= 1;
+			/*@innercontinue@*/ continue;
+                    case DT_GNU_HASH:
+			gotGNUHASH= 1;
+			/*@innercontinue@*/ continue;
                     case DT_DEBUG:    
 			gotDEBUG = 1;
 			/*@innercontinue@*/ continue;
@@ -1107,6 +1115,16 @@
     }
     /*@=branchstate =uniondef @*/
 
+    /* For DSOs which use the .gnu_hash section and don't have a .hash
+     * section, we need to ensure that we have a new enough glibc. */ 
+    if (gotGNUHASH && !gotHASH) {
+        ds = rpmdsSingle(RPMTAG_REQUIRENAME, "rtld(GNU_HASH)", "", 
+                         RPMSENSE_FIND_REQUIRES);
+        rpmdsMerge(&fc->requires, ds);
+        rpmfcSaveArg(&fc->ddict, rpmfcFileDep(t, fc->ix, ds));
+        ds = rpmdsFree(ds);
+    }
+
     /* For DSO's, provide the basename of the file if DT_SONAME not found. */
     if (!fc->skipProv && isDSO && !gotDEBUG && !gotSONAME) {
 	depsp = &fc->provides;
--- rpm-4.4.2/rpmdb/legacy.c.gnuhash	2006-07-11 07:07:18.000000000 -0400
+++ rpm-4.4.2/rpmdb/legacy.c	2006-07-11 07:07:44.000000000 -0400
@@ -14,6 +14,9 @@
 #if !defined(DT_GNU_LIBLIST)
 #define	DT_GNU_LIBLIST		0x6ffffef9
 #endif
+#if !defined(DT_GNU_HASH)
+#define	DT_GNU_HASH		0x6ffffef5
+#endif
 
 #endif
 


Index: rpm.spec
===================================================================
RCS file: /cvs/dist/rpms/rpm/devel/rpm.spec,v
retrieving revision 1.208
retrieving revision 1.209
diff -u -r1.208 -r1.209
--- rpm.spec	5 Jul 2006 14:49:45 -0000	1.208
+++ rpm.spec	11 Jul 2006 15:37:56 -0000	1.209
@@ -20,7 +20,7 @@
 %define version 4.4.2
 Version: %{version}
 %{expand: %%define rpm_version %{version}}
-Release: 27
+Release: 28
 Group: System Environment/Base
 Source: ftp://wraptastic.org/pub/rpm-4.4.x/rpm-%{rpm_version}.tar.gz
 Source1: mono-find-provides
@@ -55,6 +55,7 @@
 Patch27: rpm-4.4.2-noselinux-verify.patch
 Patch28: rpm-4.4.2-python-aslist.patch
 Patch29: rpm-4.4.2-rpmio-ipv6.patch
+Patch30: rpm-4.4.2-gnuhash.patch
 License: GPL
 Conflicts: patch < 2.5
 %ifos linux
@@ -195,6 +196,7 @@
 #patch6 -p1  -b .matchpathcon
 %patch28 -p1 -b .aslist
 %patch29 -p1 -b .ipv6
+%patch30 -p1 -b .gnuhash
 
 # rebuild configure for ipv6
 autoconf
@@ -591,6 +593,9 @@
 %{__includedir}/popt.h
 
 %changelog
+* Tue Jul 11 2006 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-28
+- Detect and provide a requirement for DT_GNU_HASH 
+
 * Wed Jul 05 2006 Paul Nasrat <pnasrat at redhat.com> - 4.4.2-27
 - IPv4/6 and EPSV support by Arkadiusz Miskiewicz <misiek at pld.org.pl>
 




More information about the fedora-cvs-commits mailing list