diff options
author | 2017-07-13 22:37:28 +0100 | |
---|---|---|
committer | 2017-07-13 22:37:59 +0100 | |
commit | e6a35a1b4a009bd4af76f0152cf2d0d028039848 (patch) | |
tree | 4b01de8d311d118b0dfd1efc23a5c9139d15b013 /sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch | |
parent | kde-apps: Drop KDE Applications 17.04.2 (diff) | |
download | gentoo-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-missing.patch')
-rw-r--r-- | sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch b/sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch new file mode 100644 index 000000000000..e15250b4c61f --- /dev/null +++ b/sys-libs/libunwind/files/libunwind-1.2-ia64-missing.patch @@ -0,0 +1,93 @@ +Original libunwind release is missing a few ia64-specific files in tarball. +diff --git a/src/ia64/mk_Gcursor_i.c b/src/ia64/mk_Gcursor_i.c +new file mode 100644 +index 0000000..67b14d5 +--- /dev/null ++++ b/src/ia64/mk_Gcursor_i.c +@@ -0,0 +1,65 @@ ++/* libunwind - a platform-independent unwind library ++ Copyright (C) 2003 Hewlett-Packard Co ++ Contributed by David Mosberger-Tang <davidm@hpl.hp.com> ++ ++This file is part of libunwind. ++ ++Permission is hereby granted, free of charge, to any person obtaining ++a copy of this software and associated documentation files (the ++"Software"), to deal in the Software without restriction, including ++without limitation the rights to use, copy, modify, merge, publish, ++distribute, sublicense, and/or sell copies of the Software, and to ++permit persons to whom the Software is furnished to do so, subject to ++the following conditions: ++ ++The above copyright notice and this permission notice shall be ++included in all copies or substantial portions of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ ++ ++/* Utility to generate cursor_i.h. */ ++ ++#include "libunwind_i.h" ++ ++#ifdef offsetof ++# undef offsetof ++#endif ++ ++#define offsetof(type,field) ((char *) &((type *) 0)->field - (char *) 0) ++ ++#define OFFSET(sym, offset) \ ++ asm volatile("\n->" #sym " %0" : : "i" (offset)) ++ ++int ++main (void) ++{ ++ OFFSET("IP_OFF", offsetof (struct cursor, ip)); ++ OFFSET("PR_OFF", offsetof (struct cursor, pr)); ++ OFFSET("BSP_OFF", offsetof (struct cursor, bsp)); ++ OFFSET("PSP_OFF", offsetof (struct cursor, psp)); ++ OFFSET("PFS_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_PFS])); ++ OFFSET("RNAT_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_RNAT])); ++ OFFSET("UNAT_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_UNAT])); ++ OFFSET("LC_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_LC])); ++ OFFSET("FPSR_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_FPSR])); ++ OFFSET("B1_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B1])); ++ OFFSET("B2_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B2])); ++ OFFSET("B3_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B3])); ++ OFFSET("B4_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B4])); ++ OFFSET("B5_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_B5])); ++ OFFSET("F2_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F2])); ++ OFFSET("F3_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F3])); ++ OFFSET("F4_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F4])); ++ OFFSET("F5_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F5])); ++ OFFSET("FR_LOC_OFF", offsetof (struct cursor, loc[IA64_REG_F16])); ++ OFFSET("LOC_SIZE", ++ (offsetof (struct cursor, loc[1]) - offsetof (struct cursor, loc[0]))); ++ OFFSET("SIGCONTEXT_ADDR_OFF", offsetof (struct cursor, sigcontext_addr)); ++ return 0; ++} +diff --git a/src/ia64/mk_Lcursor_i.c b/src/ia64/mk_Lcursor_i.c +new file mode 100644 +index 0000000..aee2e7e +--- /dev/null ++++ b/src/ia64/mk_Lcursor_i.c +@@ -0,0 +1,2 @@ ++#define UNW_LOCAL_ONLY ++#include "mk_Gcursor_i.c" +diff --git a/src/ia64/mk_cursor_i b/src/ia64/mk_cursor_i +new file mode 100755 +index 0000000..9211f91 +--- /dev/null ++++ b/src/ia64/mk_cursor_i +@@ -0,0 +1,7 @@ ++#!/bin/sh ++test -z "$1" && exit 1 ++echo "/* GENERATED */" ++echo "#ifndef cursor_i_h" ++echo "#define cursor_i_h" ++sed -ne 's/^->"\(\S*\)" \(\d*\)/#define \1 \2/p' < $1 || exit $? ++echo "#endif" |