Handle DT_MIPS_RLD_MAP_REL on MIPS (debian bug#820335)
(cherry picked from commit 48fee88e9e2bb13ae38bb4274fe91c31d5c9fc3c)
This commit is contained in:
parent
bc91cd1870
commit
aedf7568d5
31
chrpath-fix-mips-segfault.patch
Normal file
31
chrpath-fix-mips-segfault.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
--- chrpath-0.18.orig/killrpath.c
|
||||||
|
+++ chrpath-0.18/killrpath.c
|
||||||
|
@@ -78,10 +78,26 @@
|
||||||
|
dynpos = 0;
|
||||||
|
for (i = 0; DYNSS(i, d_tag) != DT_NULL; i++)
|
||||||
|
{
|
||||||
|
- if (is_e32())
|
||||||
|
+ if (is_e32()) {
|
||||||
|
((Elf32_Dyn *)dyns)[dynpos] = ((Elf32_Dyn *)dyns)[i];
|
||||||
|
- else
|
||||||
|
+#ifdef DT_MIPS_RLD_MAP_REL
|
||||||
|
+ /* DT_MIPS_RLD_MAP_REL is relative to the offset of the tag.
|
||||||
|
+ Adjust it consequently. */
|
||||||
|
+ if (DYNSS(i, d_tag) == DT_MIPS_RLD_MAP_REL)
|
||||||
|
+ ((Elf32_Dyn *)dyns)[dynpos].d_un.d_val =
|
||||||
|
+ DO_SWAPU32(DYNSU(i, d_un.d_val) +
|
||||||
|
+ (i - dynpos) * sizeof(Elf32_Dyn));
|
||||||
|
+#endif
|
||||||
|
+ } else {
|
||||||
|
((Elf64_Dyn *)dyns)[dynpos] = ((Elf64_Dyn *)dyns)[i];
|
||||||
|
+#ifdef DT_MIPS_RLD_MAP_REL
|
||||||
|
+ /* Ditto */
|
||||||
|
+ if (DYNSS(i, d_tag) == DT_MIPS_RLD_MAP_REL)
|
||||||
|
+ ((Elf64_Dyn *)dyns)[dynpos].d_un.d_val =
|
||||||
|
+ DO_SWAPU64(DYNSU(i, d_un.d_val) +
|
||||||
|
+ (i - dynpos) * sizeof(Elf64_Dyn));
|
||||||
|
+#endif
|
||||||
|
+ }
|
||||||
|
if ( ! elf_dynpath_tag(DYNSS(i, d_tag)) )
|
||||||
|
dynpos++;
|
||||||
|
}
|
||||||
@ -1,10 +1,12 @@
|
|||||||
Name: chrpath
|
Name: chrpath
|
||||||
Version: 0.16
|
Version: 0.16
|
||||||
Release: 13
|
Release: 14
|
||||||
Summary: Modify the dynamic library load path (rpath) of compiled programs
|
Summary: Modify the dynamic library load path (rpath) of compiled programs
|
||||||
License: GPL+
|
License: GPL+
|
||||||
URL: https://github.com/openEuler-BaseService/chrpath
|
URL: https://github.com/openEuler-BaseService/chrpath
|
||||||
Source0: https://alioth-archive.debian.org/releases/%{name}/%{name}/%{version}/%{name}-%{version}.tar.gz
|
Source0: https://alioth-archive.debian.org/releases/%{name}/%{name}/%{version}/%{name}-%{version}.tar.gz
|
||||||
|
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820335
|
||||||
|
Patch0: chrpath-fix-mips-segfault.patch
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
|
|
||||||
@ -39,6 +41,9 @@ make check
|
|||||||
%{_mandir}/man1/chrpath.1*
|
%{_mandir}/man1/chrpath.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 04 2024 Funda Wang <fundawang@yeah.net> - 0.16-14
|
||||||
|
- Handle DT_MIPS_RLD_MAP_REL on MIPS (debian bug#820335)
|
||||||
|
|
||||||
* Tue Oct 25 2022 yanglongkang <yanglongkang@h-partners.com> - 0.16-13
|
* Tue Oct 25 2022 yanglongkang <yanglongkang@h-partners.com> - 0.16-13
|
||||||
- rebuild for next release
|
- rebuild for next release
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user