summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-07-13 22:37:28 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2017-07-13 22:37:59 +0100
commite6a35a1b4a009bd4af76f0152cf2d0d028039848 (patch)
tree4b01de8d311d118b0dfd1efc23a5c9139d15b013 /sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch
parentkde-apps: Drop KDE Applications 17.04.2 (diff)
downloadgentoo-e6a35a1b4a009bd4af76f0152cf2d0d028039848.tar.gz
gentoo-e6a35a1b4a009bd4af76f0152cf2d0d028039848.tar.bz2
gentoo-e6a35a1b4a009bd4af76f0152cf2d0d028039848.zip
sys-libs/libunwind: workaround build failure on ia64
Missing files in tarball, outdated implementation. While at it fixed SRC_URI to point to mirrors://nongnu. Package-Manager: Portage-2.3.6, Repoman-2.3.2
Diffstat (limited to 'sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch')
-rw-r--r--sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch b/sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch
new file mode 100644
index 000000000000..3785d8820cd9
--- /dev/null
+++ b/sys-libs/libunwind/files/libunwind-1.2-ia64-ptrace-coredump.patch
@@ -0,0 +1,34 @@
+Fix build failure on ia64.
+ coredump/_UPT_get_dyn_info_list_addr.c
+is almost identical to
+ ptrace/_UPT_get_dyn_info_list_addr.c
+It's clearly an __ia64 implementation copy.
+diff --git a/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/coredump/_UPT_get_dyn_info_list_addr.c
+index 0d11905..176b146 100644
+--- a/src/coredump/_UPT_get_dyn_info_list_addr.c
++++ b/src/coredump/_UPT_get_dyn_info_list_addr.c
+@@ -31,2 +31,3 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+ # include "os-linux.h"
++# include "../ptrace/_UPT_internal.h"
+
+@@ -40,3 +41,2 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+ char path[PATH_MAX];
+- unw_dyn_info_t *di;
+ unw_word_t res;
+@@ -50,5 +50,5 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+
+- invalidate_edi (&ui->edi);
++ invalidate_edi(&ui->edi);
+
+- if (elf_map_image (&ui->ei, path) < 0)
++ if (elf_map_image (&ui->edi.ei, path) < 0)
+ /* ignore unmappable stuff like "/SYSV00001b58 (deleted)" */
+@@ -58,6 +58,5 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+
+- di = tdep_find_unwind_table (&ui->edi, as, path, lo, off);
+- if (di)
++ if (tdep_find_unwind_table (&ui->edi, as, path, lo, off, 0) > 0)
+ {
+- res = _Uia64_find_dyn_list (as, di, arg);
++ res = _Uia64_find_dyn_list (as, &ui->edi.di_cache, arg);
+ if (res && count++ == 0)