Detect and provide a requirement for DT_GNU_HASH
This commit is contained in:
parent
14e3df0103
commit
a19af6c172
53
rpm-4.4.2-gnuhash.patch
Normal file
53
rpm-4.4.2-gnuhash.patch
Normal file
@ -0,0 +1,53 @@
|
||||
--- 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
|
||||
|
7
rpm.spec
7
rpm.spec
@ -20,7 +20,7 @@ Name: rpm
|
||||
%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 @@ Patch26: rpm-4.4.2-rpmfc-skip.patch
|
||||
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 @@ shell-like rules.
|
||||
#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 @@ exit 0
|
||||
%{__includedir}/popt.h
|
||||
|
||||
%changelog
|
||||
* Tue Jul 11 2006 Paul Nasrat <pnasrat@redhat.com> - 4.4.2-28
|
||||
- Detect and provide a requirement for DT_GNU_HASH
|
||||
|
||||
* Wed Jul 05 2006 Paul Nasrat <pnasrat@redhat.com> - 4.4.2-27
|
||||
- IPv4/6 and EPSV support by Arkadiusz Miskiewicz <misiek@pld.org.pl>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user