diff options
Diffstat (limited to 'meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch')
-rw-r--r-- | meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch b/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch deleted file mode 100644 index da0275bfcd..0000000000 --- a/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 05240e13668422c4f9118f2cde953ec875d0d68f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 14 Jan 2020 01:37:22 -0800 -Subject: [PATCH] Add MIPS gnu hash support - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/arch-mips.c | 1 + - src/prelink.c | 1 + - src/prelink.h | 5 +++++ - 3 files changed, 7 insertions(+) - ---- a/src/arch-mips.c -+++ b/src/arch-mips.c -@@ -324,6 +324,7 @@ mips_adjust_dyn (DSO *dso, int n, GElf_D - case DT_MIPS_BASE_ADDRESS: - case DT_MIPS_RLD_MAP: - case DT_MIPS_OPTIONS: -+ case DT_MIPS_XHASH: - if (dyn->d_un.d_ptr >= start) - dyn->d_un.d_ptr += adjust; - return 1; ---- a/src/prelink.c -+++ b/src/prelink.c -@@ -425,6 +425,7 @@ prelink_prepare (DSO *dso) - { - case SHT_HASH: - case SHT_GNU_HASH: -+ case SHT_MIPS_XHASH: - case SHT_DYNSYM: - case SHT_REL: - case SHT_RELA: ---- a/src/prelink.h -+++ b/src/prelink.h -@@ -114,6 +114,11 @@ typedef uint8_t Elf64_Byte; - #define SHT_MIPS_ABIFLAGS 0x7000002a - #endif - -+#ifndef SHT_MIPS_XHASH -+#define DT_MIPS_XHASH 0x70000036 -+#define SHT_MIPS_XHASH 0x7000002b -+#endif -+ - #ifndef RSS_UNDEF - #define RSS_UNDEF 0 - #endif ---- a/src/dso.c -+++ b/src/dso.c -@@ -109,6 +109,11 @@ read_dynamic (DSO *dso) - dso->info_DT_GNU_HASH = dyn.d_un.d_val; - dso->info_set_mask |= (1ULL << DT_GNU_HASH_BIT); - } -+ else if (dyn.d_tag == DT_MIPS_XHASH) -+ { -+ dso->info_DT_GNU_HASH = dyn.d_un.d_val; -+ dso->info_set_mask |= (1ULL << DT_GNU_HASH_BIT); -+ } - else if (dyn.d_tag == DT_TLSDESC_PLT) - { - dso->info_DT_TLSDESC_PLT = dyn.d_un.d_val; -@@ -1463,6 +1468,7 @@ adjust_dso (DSO *dso, GElf_Addr start, G - break; - case SHT_HASH: - case SHT_GNU_HASH: -+ case SHT_MIPS_XHASH: - case SHT_NOBITS: - case SHT_STRTAB: - break; ---- a/src/space.c -+++ b/src/space.c -@@ -61,6 +61,7 @@ print_sections (DSO *dso, GElf_Ehdr *ehd - { SHT_GNU_versym, "VERSYM" }, - { SHT_GNU_LIBLIST, "LIBLIST" }, - { SHT_GNU_HASH, "GNU_HASH" }, -+ { SHT_MIPS_XHASH, "MIPS_XHASH" }, - { 0, NULL } - }; - -@@ -183,6 +184,7 @@ readonly_is_movable (DSO *dso, GElf_Ehdr - { - case SHT_HASH: - case SHT_GNU_HASH: -+ case SHT_MIPS_XHASH: - case SHT_DYNSYM: - case SHT_REL: - case SHT_RELA: -@@ -558,6 +560,7 @@ find_readonly_space (DSO *dso, GElf_Shdr - { - case SHT_HASH: - case SHT_GNU_HASH: -+ case SHT_MIPS_XHASH: - case SHT_DYNSYM: - case SHT_STRTAB: - case SHT_GNU_verdef: ---- a/src/exec.c -+++ b/src/exec.c -@@ -65,7 +65,11 @@ update_dynamic_tags (DSO *dso, GElf_Shdr - || (dynamic_info_is_set (dso, DT_GNU_HASH_BIT) - && dso->info_DT_GNU_HASH == old_shdr[j].sh_addr - && old_shdr[j].sh_type == SHT_GNU_HASH -- && set_dynamic (dso, DT_GNU_HASH, shdr[i].sh_addr, 1))) -+ && set_dynamic (dso, DT_GNU_HASH, shdr[i].sh_addr, 1)) -+ || (dynamic_info_is_set (dso, DT_GNU_HASH_BIT) -+ && dso->info_DT_GNU_HASH == old_shdr[j].sh_addr -+ && old_shdr[j].sh_type == SHT_MIPS_XHASH -+ && set_dynamic (dso, DT_MIPS_XHASH, shdr[i].sh_addr, 1))) - return 1; - } - |