Compare commits
59 Commits
F-13-start
...
rawhide
Author | SHA1 | Date | |
---|---|---|---|
|
09708d8e63 | ||
|
a1c16ce0a0 | ||
|
849837b480 | ||
|
b66625d929 | ||
|
2886742cb0 | ||
|
74c255a166 | ||
|
e72b0fc853 | ||
|
1c74097ba6 | ||
|
fadd9f99a4 | ||
|
1ac07540e4 | ||
|
af27c5c860 | ||
|
61b9af32dd | ||
|
efb668858b | ||
|
a55e1b8ba6 | ||
|
7fe03d7b7a | ||
|
0d267b17df | ||
|
dd778107e0 | ||
|
5d7bc24451 | ||
|
ec928ec8df | ||
|
bfdacd72c0 | ||
|
ccdcb646de | ||
|
d1c7cb2e27 | ||
|
bf773e8b2a | ||
|
4a34d35cbc | ||
|
3dda0e75f7 | ||
|
a4bb342886 | ||
|
aacb7d40c8 | ||
|
ebfaa2672e | ||
|
90f7c40cdb | ||
|
ee3845b174 | ||
|
977148dd03 | ||
|
58ed0646c8 | ||
|
1129981482 | ||
|
a81d7b32e2 | ||
|
1815d8ee0b | ||
|
8c93d61cfe | ||
|
9e0a9246ef | ||
|
841b180939 | ||
|
3f11b9a75e | ||
|
e98c17b820 | ||
|
d31bc18325 | ||
|
b0c9b69767 | ||
|
7a28bf3807 | ||
|
67d2b33c50 | ||
|
d436ef247f | ||
|
cd37e0968f | ||
|
ef33c9d570 | ||
|
d42b74ed94 | ||
|
2501e5f7d0 | ||
|
c2bd71a089 | ||
|
157195c22f | ||
|
c4c9b1ec74 | ||
|
eda4efe17e | ||
|
170f4373f5 | ||
|
413a80022a | ||
|
1709f2b98f | ||
|
6b1518c95d | ||
|
189cf20ffe | ||
|
707369ce6f |
@ -1 +0,0 @@
|
|||||||
libunwind-20090430betagit4b8404d1.tar.bz2
|
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/libunwind-*.tar.gz
|
||||||
|
/v1.7.0-rc2.tar.gz
|
21
Makefile
21
Makefile
@ -1,21 +0,0 @@
|
|||||||
# Makefile for source rpm: libunwind
|
|
||||||
# $Id: Makefile,v 1.2 2007/10/15 19:04:48 notting Exp $
|
|
||||||
NAME := libunwind
|
|
||||||
SPECFILE = $(firstword $(wildcard *.spec))
|
|
||||||
|
|
||||||
define find-makefile-common
|
|
||||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
|
||||||
|
|
||||||
ifeq ($(MAKEFILE_COMMON),)
|
|
||||||
# attempt a checkout
|
|
||||||
define checkout-makefile-common
|
|
||||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(MAKEFILE_COMMON)
|
|
22
libunwind-1.3.1-multilib-fix.patch
Normal file
22
libunwind-1.3.1-multilib-fix.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff -up libunwind-1.3.1/include/libunwind.h.in.multilibfix libunwind-1.3.1/include/libunwind.h.in
|
||||||
|
--- libunwind-1.3.1/include/libunwind.h.in.multilibfix 2020-08-13 10:06:03.275601460 -0400
|
||||||
|
+++ libunwind-1.3.1/include/libunwind.h.in 2020-08-13 10:06:29.579522623 -0400
|
||||||
|
@@ -1,8 +1,6 @@
|
||||||
|
/* Provide a real file - not a symlink - as it would cause multiarch conflicts
|
||||||
|
when multiple different arch releases are installed simultaneously. */
|
||||||
|
|
||||||
|
-#ifndef UNW_REMOTE_ONLY
|
||||||
|
-
|
||||||
|
#if defined __aarch64__
|
||||||
|
#include "libunwind-aarch64.h"
|
||||||
|
#elif defined __arm__
|
||||||
|
@@ -28,9 +26,3 @@
|
||||||
|
#else
|
||||||
|
# error "Unsupported arch"
|
||||||
|
#endif
|
||||||
|
-
|
||||||
|
-#else /* UNW_REMOTE_ONLY */
|
||||||
|
-
|
||||||
|
-# include "libunwind-@arch@.h"
|
||||||
|
-
|
||||||
|
-#endif /* UNW_REMOTE_ONLY */
|
355
libunwind-1.6.2-dynamic-page-size.patch
Normal file
355
libunwind-1.6.2-dynamic-page-size.patch
Normal file
@ -0,0 +1,355 @@
|
|||||||
|
From cf6b9aadd60a85107afe5196251ca2ed198a96d0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Moody <daniel.moody@mongodb.com>
|
||||||
|
Date: Fri, 18 Feb 2022 14:24:37 -0600
|
||||||
|
Subject: [PATCH] Updated to determine PAGE_SIZE dynamically.
|
||||||
|
|
||||||
|
---
|
||||||
|
include/libunwind_i.h | 9 +++++++++
|
||||||
|
src/aarch64/Ginit.c | 19 ++++++++-----------
|
||||||
|
src/arm/Ginit.c | 13 ++-----------
|
||||||
|
src/mi/init.c | 28 ++++++++++++++++++++++++++--
|
||||||
|
src/riscv/Ginit.c | 22 ++++++++--------------
|
||||||
|
src/s390x/Ginit.c | 25 ++++++++++---------------
|
||||||
|
src/x86/Ginit.c | 13 ++-----------
|
||||||
|
src/x86_64/Ginit.c | 18 +++++-------------
|
||||||
|
8 files changed, 70 insertions(+), 77 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/include/libunwind_i.h b/include/libunwind_i.h
|
||||||
|
index 6c7dda9a8..bcf229566 100644
|
||||||
|
--- a/include/libunwind_i.h
|
||||||
|
+++ b/include/libunwind_i.h
|
||||||
|
@@ -55,6 +55,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
+#include <errno.h>
|
||||||
|
+#include <stdio.h>
|
||||||
|
|
||||||
|
#if defined(HAVE_ELF_H)
|
||||||
|
# include <elf.h>
|
||||||
|
@@ -288,6 +290,13 @@ print_error (const char *string)
|
||||||
|
return write (2, string, strlen (string));
|
||||||
|
}
|
||||||
|
|
||||||
|
+HIDDEN extern long unw_page_size;
|
||||||
|
+
|
||||||
|
+static inline unw_word_t uwn_page_start(unw_word_t addr)
|
||||||
|
+{
|
||||||
|
+ return addr & ~(unw_page_size - 1);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#define mi_init UNWI_ARCH_OBJ(mi_init)
|
||||||
|
|
||||||
|
extern void mi_init (void); /* machine-independent initializations */
|
||||||
|
diff --git a/src/aarch64/Ginit.c b/src/aarch64/Ginit.c
|
||||||
|
index 2b08feb36..fe6e511df 100644
|
||||||
|
--- a/src/aarch64/Ginit.c
|
||||||
|
+++ b/src/aarch64/Ginit.c
|
||||||
|
@@ -84,8 +84,6 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#define PAGE_SIZE 4096
|
||||||
|
-#define PAGE_START(a) ((a) & ~(PAGE_SIZE-1))
|
||||||
|
|
||||||
|
static int mem_validate_pipe[2] = {-1, -1};
|
||||||
|
|
||||||
|
@@ -197,11 +195,14 @@ tdep_init_mem_validate (void)
|
||||||
|
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
unsigned char present = 1;
|
||||||
|
- unw_word_t addr = PAGE_START((unw_word_t)&present);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ unw_word_t addr = uwn_page_start((unw_word_t)&present);
|
||||||
|
unsigned char mvec[1];
|
||||||
|
int ret;
|
||||||
|
- while ((ret = mincore ((void*)addr, PAGE_SIZE, (unsigned char *)mvec)) == -1 &&
|
||||||
|
- errno == EAGAIN) {}
|
||||||
|
+ while ((ret = mincore((void *)addr, len, (unsigned char *)mvec)) == -1 &&
|
||||||
|
+ errno == EAGAIN)
|
||||||
|
+ {
|
||||||
|
+ }
|
||||||
|
if (ret == 0)
|
||||||
|
{
|
||||||
|
Debug(1, "using mincore to validate memory\n");
|
||||||
|
@@ -295,12 +296,8 @@ validate_mem (unw_word_t addr)
|
||||||
|
{
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
- if (PAGE_START(addr + sizeof (unw_word_t) - 1) == PAGE_START(addr))
|
||||||
|
- len = PAGE_SIZE;
|
||||||
|
- else
|
||||||
|
- len = PAGE_SIZE * 2;
|
||||||
|
-
|
||||||
|
- addr = PAGE_START(addr);
|
||||||
|
+ len = unw_page_size;
|
||||||
|
+ addr = uwn_page_start(addr);
|
||||||
|
|
||||||
|
if (addr == 0)
|
||||||
|
return -1;
|
||||||
|
diff --git a/src/arm/Ginit.c b/src/arm/Ginit.c
|
||||||
|
index 0bac0d72d..bce52dc34 100644
|
||||||
|
--- a/src/arm/Ginit.c
|
||||||
|
+++ b/src/arm/Ginit.c
|
||||||
|
@@ -71,9 +71,6 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#define PAGE_SIZE 4096
|
||||||
|
-#define PAGE_START(a) ((a) & ~(PAGE_SIZE-1))
|
||||||
|
-
|
||||||
|
/* Cache of already validated addresses */
|
||||||
|
#define NLGA 4
|
||||||
|
static unw_word_t last_good_addr[NLGA];
|
||||||
|
@@ -83,14 +80,8 @@ static int
|
||||||
|
validate_mem (unw_word_t addr)
|
||||||
|
{
|
||||||
|
int i, victim;
|
||||||
|
- size_t len;
|
||||||
|
-
|
||||||
|
- if (PAGE_START(addr + sizeof (unw_word_t) - 1) == PAGE_START(addr))
|
||||||
|
- len = PAGE_SIZE;
|
||||||
|
- else
|
||||||
|
- len = PAGE_SIZE * 2;
|
||||||
|
-
|
||||||
|
- addr = PAGE_START(addr);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ addr = uwn_page_start(addr);
|
||||||
|
|
||||||
|
if (addr == 0)
|
||||||
|
return -1;
|
||||||
|
diff --git a/src/mi/init.c b/src/mi/init.c
|
||||||
|
index 60a48c589..aa9319981 100644
|
||||||
|
--- a/src/mi/init.c
|
||||||
|
+++ b/src/mi/init.c
|
||||||
|
@@ -39,6 +39,30 @@ static const char rcsid[] UNUSED =
|
||||||
|
long unwi_debug_level;
|
||||||
|
|
||||||
|
#endif /* UNW_DEBUG */
|
||||||
|
+long unw_page_size;
|
||||||
|
+static void
|
||||||
|
+unw_init_page_size ()
|
||||||
|
+{
|
||||||
|
+ errno = 0;
|
||||||
|
+ long result = sysconf (_SC_PAGESIZE);
|
||||||
|
+ if (result == -1)
|
||||||
|
+ {
|
||||||
|
+ if (errno != 0)
|
||||||
|
+ {
|
||||||
|
+ print_error ("Failed to get _SC_PAGESIZE: ");
|
||||||
|
+ print_error (strerror(errno));
|
||||||
|
+ print_error ("\n");
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ print_error ("Failed to get _SC_PAGESIZE, errno was not set.\n");
|
||||||
|
+
|
||||||
|
+ unw_page_size = 4096;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ unw_page_size = result;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
|
||||||
|
HIDDEN void
|
||||||
|
mi_init (void)
|
||||||
|
@@ -55,6 +79,6 @@ mi_init (void)
|
||||||
|
setbuf (stderr, NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
-
|
||||||
|
- assert (sizeof (struct cursor) <= sizeof (unw_cursor_t));
|
||||||
|
+ unw_init_page_size();
|
||||||
|
+ assert(sizeof(struct cursor) <= sizeof(unw_cursor_t));
|
||||||
|
}
|
||||||
|
diff --git a/src/riscv/Ginit.c b/src/riscv/Ginit.c
|
||||||
|
index 907f72962..4faeecbfd 100644
|
||||||
|
--- a/src/riscv/Ginit.c
|
||||||
|
+++ b/src/riscv/Ginit.c
|
||||||
|
@@ -97,9 +97,6 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
|
||||||
|
|
||||||
|
// Memory validation routines are from aarch64
|
||||||
|
|
||||||
|
-#define PAGE_SIZE 4096
|
||||||
|
-#define PAGE_START(a) ((a) & ~(PAGE_SIZE-1))
|
||||||
|
-
|
||||||
|
static int mem_validate_pipe[2] = {-1, -1};
|
||||||
|
|
||||||
|
#ifdef HAVE_PIPE2
|
||||||
|
@@ -210,11 +207,14 @@ tdep_init_mem_validate (void)
|
||||||
|
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
unsigned char present = 1;
|
||||||
|
- unw_word_t addr = PAGE_START((unw_word_t)&present);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ unw_word_t addr = uwn_page_start((unw_word_t)&present);
|
||||||
|
unsigned char mvec[1];
|
||||||
|
int ret;
|
||||||
|
- while ((ret = mincore ((void*)addr, PAGE_SIZE, (unsigned char *)mvec)) == -1 &&
|
||||||
|
- errno == EAGAIN) {}
|
||||||
|
+ while ((ret = mincore((void *)addr, len, (unsigned char *)mvec)) == -1 &&
|
||||||
|
+ errno == EAGAIN)
|
||||||
|
+ {
|
||||||
|
+ }
|
||||||
|
if (ret == 0)
|
||||||
|
{
|
||||||
|
Debug(1, "using mincore to validate memory\n");
|
||||||
|
@@ -306,14 +306,8 @@ cache_valid_mem(unw_word_t addr)
|
||||||
|
static int
|
||||||
|
validate_mem (unw_word_t addr)
|
||||||
|
{
|
||||||
|
- size_t len;
|
||||||
|
-
|
||||||
|
- if (PAGE_START(addr + sizeof (unw_word_t) - 1) == PAGE_START(addr))
|
||||||
|
- len = PAGE_SIZE;
|
||||||
|
- else
|
||||||
|
- len = PAGE_SIZE * 2;
|
||||||
|
-
|
||||||
|
- addr = PAGE_START(addr);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ addr = uwn_page_start(addr);
|
||||||
|
|
||||||
|
if (addr == 0)
|
||||||
|
return -1;
|
||||||
|
diff --git a/src/s390x/Ginit.c b/src/s390x/Ginit.c
|
||||||
|
index db01743c0..2bce2f4b6 100644
|
||||||
|
--- a/src/s390x/Ginit.c
|
||||||
|
+++ b/src/s390x/Ginit.c
|
||||||
|
@@ -27,6 +27,7 @@ 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. */
|
||||||
|
|
||||||
|
+#include "libunwind_i.h"
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
@@ -93,9 +94,6 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#define PAGE_SIZE 4096
|
||||||
|
-#define PAGE_START(a) ((a) & ~(PAGE_SIZE-1))
|
||||||
|
-
|
||||||
|
static int mem_validate_pipe[2] = {-1, -1};
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
@@ -163,7 +161,7 @@ static int mincore_validate (void *addr, size_t len)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- for (i = 0; i < (len + PAGE_SIZE - 1) / PAGE_SIZE; i++)
|
||||||
|
+ for (i = 0; i < (len + unw_page_size - 1) / unw_page_size; i++)
|
||||||
|
{
|
||||||
|
if (!(mvec[i] & 1)) return -1;
|
||||||
|
}
|
||||||
|
@@ -183,11 +181,14 @@ tdep_init_mem_validate (void)
|
||||||
|
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
unsigned char present = 1;
|
||||||
|
- unw_word_t addr = PAGE_START((unw_word_t)&present);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ unw_word_t addr = uwn_page_start((unw_word_t)&present);
|
||||||
|
unsigned char mvec[1];
|
||||||
|
int ret;
|
||||||
|
- while ((ret = mincore ((void*)addr, PAGE_SIZE, mvec)) == -1 &&
|
||||||
|
- errno == EAGAIN) {}
|
||||||
|
+ while ((ret = mincore((void *)addr, len, mvec)) == -1 &&
|
||||||
|
+ errno == EAGAIN)
|
||||||
|
+ {
|
||||||
|
+ }
|
||||||
|
if (ret == 0 && (mvec[0] & 1))
|
||||||
|
{
|
||||||
|
Debug(1, "using mincore to validate memory\n");
|
||||||
|
@@ -210,14 +211,8 @@ static int
|
||||||
|
validate_mem (unw_word_t addr)
|
||||||
|
{
|
||||||
|
int i, victim;
|
||||||
|
- size_t len;
|
||||||
|
-
|
||||||
|
- if (PAGE_START(addr + sizeof (unw_word_t) - 1) == PAGE_START(addr))
|
||||||
|
- len = PAGE_SIZE;
|
||||||
|
- else
|
||||||
|
- len = PAGE_SIZE * 2;
|
||||||
|
-
|
||||||
|
- addr = PAGE_START(addr);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ addr = uwn_page_start(addr);
|
||||||
|
|
||||||
|
if (addr == 0)
|
||||||
|
return -1;
|
||||||
|
diff --git a/src/x86/Ginit.c b/src/x86/Ginit.c
|
||||||
|
index 3cec74a21..4261fb523 100644
|
||||||
|
--- a/src/x86/Ginit.c
|
||||||
|
+++ b/src/x86/Ginit.c
|
||||||
|
@@ -74,9 +74,6 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#define PAGE_SIZE 4096
|
||||||
|
-#define PAGE_START(a) ((a) & ~(PAGE_SIZE-1))
|
||||||
|
-
|
||||||
|
/* Cache of already validated addresses */
|
||||||
|
#define NLGA 4
|
||||||
|
static unw_word_t last_good_addr[NLGA];
|
||||||
|
@@ -89,14 +86,8 @@ validate_mem (unw_word_t addr)
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
unsigned char mvec[2]; /* Unaligned access may cross page boundary */
|
||||||
|
#endif
|
||||||
|
- size_t len;
|
||||||
|
-
|
||||||
|
- if (PAGE_START(addr + sizeof (unw_word_t) - 1) == PAGE_START(addr))
|
||||||
|
- len = PAGE_SIZE;
|
||||||
|
- else
|
||||||
|
- len = PAGE_SIZE * 2;
|
||||||
|
-
|
||||||
|
- addr = PAGE_START(addr);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ addr = uwn_page_start(addr);
|
||||||
|
|
||||||
|
if (addr == 0)
|
||||||
|
return -1;
|
||||||
|
diff --git a/src/x86_64/Ginit.c b/src/x86_64/Ginit.c
|
||||||
|
index 0b121bc91..e75f92a5f 100644
|
||||||
|
--- a/src/x86_64/Ginit.c
|
||||||
|
+++ b/src/x86_64/Ginit.c
|
||||||
|
@@ -73,9 +73,6 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#define PAGE_SIZE 4096
|
||||||
|
-#define PAGE_START(a) ((a) & ~(PAGE_SIZE-1))
|
||||||
|
-
|
||||||
|
static int mem_validate_pipe[2] = {-1, -1};
|
||||||
|
|
||||||
|
#ifdef HAVE_PIPE2
|
||||||
|
@@ -191,10 +188,11 @@ tdep_init_mem_validate (void)
|
||||||
|
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
unsigned char present = 1;
|
||||||
|
- unw_word_t addr = PAGE_START((unw_word_t)&present);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ unw_word_t addr = uwn_page_start((unw_word_t)&present);
|
||||||
|
unsigned char mvec[1];
|
||||||
|
int ret;
|
||||||
|
- while ((ret = mincore ((void*)addr, PAGE_SIZE, (unsigned char *)mvec)) == -1 &&
|
||||||
|
+ while ((ret = mincore ((void*)addr, len, (unsigned char *)mvec)) == -1 &&
|
||||||
|
errno == EAGAIN) {}
|
||||||
|
if (ret == 0)
|
||||||
|
{
|
||||||
|
@@ -287,14 +285,8 @@ cache_valid_mem(unw_word_t addr)
|
||||||
|
static int
|
||||||
|
validate_mem (unw_word_t addr)
|
||||||
|
{
|
||||||
|
- size_t len;
|
||||||
|
-
|
||||||
|
- if (PAGE_START(addr + sizeof (unw_word_t) - 1) == PAGE_START(addr))
|
||||||
|
- len = PAGE_SIZE;
|
||||||
|
- else
|
||||||
|
- len = PAGE_SIZE * 2;
|
||||||
|
-
|
||||||
|
- addr = PAGE_START(addr);
|
||||||
|
+ size_t len = unw_page_size;
|
||||||
|
+ addr = uwn_page_start(addr);
|
||||||
|
|
||||||
|
if (addr == 0)
|
||||||
|
return -1;
|
15
libunwind-arm-default-to-exidx.patch
Normal file
15
libunwind-arm-default-to-exidx.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff -up libunwind-1.6.2/src/arm/Gglobal.c.default-to-exidx libunwind-1.6.2/src/arm/Gglobal.c
|
||||||
|
--- libunwind-1.6.2/src/arm/Gglobal.c.default-to-exidx 2021-12-20 12:06:56.067313075 -0500
|
||||||
|
+++ libunwind-1.6.2/src/arm/Gglobal.c 2021-12-20 12:08:43.063060309 -0500
|
||||||
|
@@ -33,7 +33,10 @@ HIDDEN atomic_bool tdep_init_done = 0;
|
||||||
|
/* Android only supports three types of unwinding methods. */
|
||||||
|
HIDDEN int unwi_unwind_method = UNW_ARM_METHOD_DWARF | UNW_ARM_METHOD_EXIDX | UNW_ARM_METHOD_LR;
|
||||||
|
#else
|
||||||
|
-HIDDEN int unwi_unwind_method = UNW_ARM_METHOD_ALL;
|
||||||
|
+/* UNW_ARM_METHOD_ALL starts with UNW_ARM_METHOD_DWARF */
|
||||||
|
+/* which is never right on Fedora ARM. Default instead */
|
||||||
|
+/* to UNW_ARM_METHOD_EXIDX. */
|
||||||
|
+HIDDEN int unwi_unwind_method = UNW_ARM_METHOD_EXIDX;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
HIDDEN void
|
@ -1,212 +0,0 @@
|
|||||||
At least x86_64 version cannot work, src/setjmp/setjmp.c and
|
|
||||||
src/setjmp/sigsetjmp.c are not even compiled, src/x86_64/longjmp.S does not
|
|
||||||
match src/setjmp/setjmp.c + include/tdep-x86_64/jmpbuf.h .
|
|
||||||
|
|
||||||
google-perftools link only with libunwind.so.7 .
|
|
||||||
|
|
||||||
--- a/src/Makefile.am
|
|
||||||
+++ b/src/Makefile.am
|
|
||||||
@@ -12,7 +12,7 @@ lib_LTLIBRARIES_cdep_setjmp =
|
|
||||||
else
|
|
||||||
LIBRARIES_cdep = libunwind-ptrace.a
|
|
||||||
lib_LTLIBRARIES_cdep = libunwind.la
|
|
||||||
-lib_LTLIBRARIES_cdep_setjmp = libunwind-setjmp.la
|
|
||||||
+lib_LTLIBRARIES_cdep_setjmp = #libunwind-setjmp.la
|
|
||||||
endif
|
|
||||||
|
|
||||||
### libunwind-ptrace:
|
|
||||||
@@ -27,21 +27,21 @@ libunwind_ptrace_a_SOURCES = \
|
|
||||||
ptrace/_UPT_reg_offset.c ptrace/_UPT_resume.c
|
|
||||||
|
|
||||||
### libunwind-setjmp:
|
|
||||||
-libunwind_setjmp_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
|
|
||||||
- -version-info $(SETJMP_SO_VERSION)
|
|
||||||
-libunwind_setjmp_la_LIBADD = libunwind-$(arch).la -lc
|
|
||||||
-libunwind_setjmp_la_SOURCES_common = setjmp/setjmp_i.h \
|
|
||||||
- setjmp/longjmp.c \
|
|
||||||
- setjmp/siglongjmp.c
|
|
||||||
-libunwind_setjmp_la_SOURCES_arm = arm/siglongjmp.S
|
|
||||||
-libunwind_setjmp_la_SOURCES_ia64 = ia64/setjmp.S ia64/sigsetjmp.S \
|
|
||||||
- ia64/longjmp.S ia64/siglongjmp.S
|
|
||||||
-libunwind_setjmp_la_SOURCES_hppa = hppa/siglongjmp.S
|
|
||||||
-libunwind_setjmp_la_SOURCES_mips = mips/siglongjmp.S
|
|
||||||
-libunwind_setjmp_la_SOURCES_x86 = x86/longjmp.S x86/siglongjmp.S
|
|
||||||
-libunwind_setjmp_la_SOURCES_x86_64 = x86_64/longjmp.S x86_64/siglongjmp.S
|
|
||||||
-libunwind_setjmp_la_SOURCES_ppc64 = ppc/longjmp.S ppc/siglongjmp.S
|
|
||||||
-libunwind_setjmp_la_SOURCES_ppc32 = ppc/longjmp.S ppc/siglongjmp.S
|
|
||||||
+#libunwind_setjmp_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
|
|
||||||
+# -version-info $(SETJMP_SO_VERSION)
|
|
||||||
+#libunwind_setjmp_la_LIBADD = libunwind-$(arch).la -lc
|
|
||||||
+#libunwind_setjmp_la_SOURCES_common = setjmp/setjmp_i.h \
|
|
||||||
+# setjmp/longjmp.c \
|
|
||||||
+# setjmp/siglongjmp.c
|
|
||||||
+#libunwind_setjmp_la_SOURCES_arm = arm/siglongjmp.S
|
|
||||||
+#libunwind_setjmp_la_SOURCES_ia64 = ia64/setjmp.S ia64/sigsetjmp.S \
|
|
||||||
+# ia64/longjmp.S ia64/siglongjmp.S
|
|
||||||
+#libunwind_setjmp_la_SOURCES_hppa = hppa/siglongjmp.S
|
|
||||||
+#libunwind_setjmp_la_SOURCES_mips = mips/siglongjmp.S
|
|
||||||
+#libunwind_setjmp_la_SOURCES_x86 = x86/longjmp.S x86/siglongjmp.S
|
|
||||||
+#libunwind_setjmp_la_SOURCES_x86_64 = x86_64/longjmp.S x86_64/siglongjmp.S
|
|
||||||
+#libunwind_setjmp_la_SOURCES_ppc64 = ppc/longjmp.S ppc/siglongjmp.S
|
|
||||||
+#libunwind_setjmp_la_SOURCES_ppc32 = ppc/longjmp.S ppc/siglongjmp.S
|
|
||||||
|
|
||||||
### libunwind:
|
|
||||||
|
|
||||||
@@ -359,8 +359,8 @@ if ARCH_ARM
|
|
||||||
if !REMOTE_ONLY
|
|
||||||
libunwind_arm_la_LIBADD = libunwind.la -lc
|
|
||||||
endif
|
|
||||||
- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_arm)
|
|
||||||
+# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_arm)
|
|
||||||
else
|
|
||||||
if ARCH_IA64
|
|
||||||
ia64_mk_Gcursor_i_SOURCES = ia64/mk_Gcursor_i.c
|
|
||||||
@@ -378,8 +378,8 @@ Lcursor_i.h: ia64/mk_Lcursor_i
|
|
||||||
if !REMOTE_ONLY
|
|
||||||
libunwind_ia64_la_LIBADD = libunwind.la -lc
|
|
||||||
endif
|
|
||||||
- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_ia64)
|
|
||||||
+# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_ia64)
|
|
||||||
else
|
|
||||||
if ARCH_HPPA
|
|
||||||
lib_LTLIBRARIES_arch = libunwind-hppa.la
|
|
||||||
@@ -389,8 +389,8 @@ if ARCH_HPPA
|
|
||||||
if !REMOTE_ONLY
|
|
||||||
libunwind_hppa_la_LIBADD = libunwind.la -lc
|
|
||||||
endif
|
|
||||||
- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_hppa)
|
|
||||||
+# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_hppa)
|
|
||||||
else
|
|
||||||
if ARCH_MIPS
|
|
||||||
lib_LTLIBRARIES_arch = libunwind-mips.la
|
|
||||||
@@ -400,8 +400,8 @@ if ARCH_MIPS
|
|
||||||
if !REMOTE_ONLY
|
|
||||||
libunwind_mips_la_LIBADD = libunwind.la -lc
|
|
||||||
endif
|
|
||||||
- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_mips)
|
|
||||||
+# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_mips)
|
|
||||||
else
|
|
||||||
if ARCH_X86
|
|
||||||
lib_LTLIBRARIES_arch = libunwind-x86.la
|
|
||||||
@@ -411,8 +411,8 @@ if ARCH_X86
|
|
||||||
if !REMOTE_ONLY
|
|
||||||
libunwind_x86_la_LIBADD = libunwind.la -lc
|
|
||||||
endif
|
|
||||||
- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_x86)
|
|
||||||
+# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_x86)
|
|
||||||
else
|
|
||||||
if ARCH_X86_64
|
|
||||||
lib_LTLIBRARIES_arch = libunwind-x86_64.la
|
|
||||||
@@ -422,8 +422,8 @@ if ARCH_X86_64
|
|
||||||
if !REMOTE_ONLY
|
|
||||||
libunwind_x86_64_la_LIBADD = libunwind.la -lc
|
|
||||||
endif
|
|
||||||
- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_x86_64)
|
|
||||||
+# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_x86_64)
|
|
||||||
else
|
|
||||||
if ARCH_PPC32
|
|
||||||
lib_LTLIBRARIES_arch = libunwind-ppc32.la
|
|
||||||
@@ -433,8 +433,8 @@ if ARCH_PPC32
|
|
||||||
if !REMOTE_ONLY
|
|
||||||
libunwind_ppc32_la_LIBADD = libunwind.la -lc
|
|
||||||
endif
|
|
||||||
- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_ppc32)
|
|
||||||
+# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_ppc32)
|
|
||||||
else
|
|
||||||
if ARCH_PPC64
|
|
||||||
lib_LTLIBRARIES_arch = libunwind-ppc64.la
|
|
||||||
@@ -444,8 +444,8 @@ if ARCH_PPC64
|
|
||||||
if !REMOTE_ONLY
|
|
||||||
libunwind_ppc64_la_LIBADD = libunwind.la -lc
|
|
||||||
endif
|
|
||||||
- libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_ppc64)
|
|
||||||
+# libunwind_setjmp_la_SOURCES = $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_ppc64)
|
|
||||||
|
|
||||||
endif # ARCH_PPC64
|
|
||||||
endif # ARCH_PPC32
|
|
||||||
@@ -466,7 +466,7 @@ libunwind_la_LIBADD = -lc $(LIBCRTS)
|
|
||||||
|
|
||||||
lib_LIBRARIES = $(LIBRARIES_cdep)
|
|
||||||
lib_LTLIBRARIES = $(lib_LTLIBRARIES_cdep) $(lib_LTLIBRARIES_arch) \
|
|
||||||
- $(lib_LTLIBRARIES_cdep_setjmp)
|
|
||||||
+ # $(lib_LTLIBRARIES_cdep_setjmp)
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/tdep-$(arch) -I.
|
|
||||||
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
|
||||||
@@ -488,16 +488,16 @@ EXTRA_DIST = elfxx.h elfxx.c unwind/unwind-internal.h \
|
|
||||||
$(libunwind_mips_la_SOURCES_mips) \
|
|
||||||
$(libunwind_x86_la_SOURCES_x86) \
|
|
||||||
$(libunwind_x86_64_la_SOURCES_x86_64) \
|
|
||||||
- $(libunwind_ptrace_a_SOURCES) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_arm) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_hppa) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_ia64) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_mips) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_x86) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_x86_64) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_ppc32) \
|
|
||||||
- $(libunwind_setjmp_la_SOURCES_ppc64)
|
|
||||||
+ $(libunwind_ptrace_a_SOURCES)
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_common) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_arm) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_hppa) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_ia64) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_mips) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_x86) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_x86_64) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_ppc32) \
|
|
||||||
+# $(libunwind_setjmp_la_SOURCES_ppc64)
|
|
||||||
|
|
||||||
|
|
||||||
# The -version-info flag accepts an argument of the form
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -24,7 +24,8 @@ if ARCH_IA64
|
|
||||||
Gia64-test-nat Lia64-test-nat \
|
|
||||||
Gia64-test-rbs Lia64-test-rbs \
|
|
||||||
Gia64-test-readonly Lia64-test-readonly \
|
|
||||||
- ia64-test-setjmp ia64-test-sig
|
|
||||||
+ ia64-test-sig
|
|
||||||
+# ia64-test-setjmp
|
|
||||||
else
|
|
||||||
if ARCH_PPC64
|
|
||||||
if USE_ALTIVEC
|
|
||||||
@@ -40,8 +41,9 @@ endif #ARCH_IA64
|
|
||||||
Gtest-resume-sig Ltest-resume-sig \
|
|
||||||
Gtest-dyn1 Ltest-dyn1 \
|
|
||||||
test-async-sig test-flush-cache test-init-remote \
|
|
||||||
- test-mem test-setjmp test-ptrace \
|
|
||||||
+ test-mem test-ptrace \
|
|
||||||
Ltest-nomalloc
|
|
||||||
+# test-setjmp
|
|
||||||
noinst_PROGRAMS_cdep = forker mapper test-ptrace-misc test-varargs \
|
|
||||||
Gperf-simple Lperf-simple
|
|
||||||
|
|
||||||
@@ -93,8 +95,8 @@ test_ptrace_misc_SOURCES = test-ptrace-misc.c ident.c
|
|
||||||
LIBUNWIND = ../src/libunwind-$(arch).la $(LIBUNWIND_local)
|
|
||||||
LDADD = $(LIBUNWIND)
|
|
||||||
|
|
||||||
-test_setjmp_LDADD = ../src/libunwind-setjmp.la $(LIBUNWIND_local)
|
|
||||||
-ia64_test_setjmp_LDADD = ../src/libunwind-setjmp.la $(LIBUNWIND_local)
|
|
||||||
+# test_setjmp_LDADD = ../src/libunwind-setjmp.la $(LIBUNWIND_local)
|
|
||||||
+# ia64_test_setjmp_LDADD = ../src/libunwind-setjmp.la $(LIBUNWIND_local)
|
|
||||||
test_ptrace_LDADD = ../src/libunwind-ptrace.a $(LIBUNWIND)
|
|
||||||
Ltest_concurrent_LDADD = $(LIBUNWIND) -lpthread
|
|
||||||
Gtest_concurrent_LDADD = $(LIBUNWIND) -lpthread
|
|
25
libunwind-no-dl-iterate-phdr.patch
Normal file
25
libunwind-no-dl-iterate-phdr.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
This patch disables building of the (effectively empty)
|
||||||
|
dl-iterate-phdr.c source file. Symbols generated by annobin confuse
|
||||||
|
the run-check-namespace test because nm -g prints hidden weak symbols
|
||||||
|
in DSOs (they are considered external):
|
||||||
|
|
||||||
|
ERROR: Extraneous symbols:
|
||||||
|
000000000000de51 W dl_iterate_phdr.c.a8d8d212
|
||||||
|
ERROR: Extraneous symbols:
|
||||||
|
00000000000120b0 W dl_iterate_phdr.c.a8d8d212
|
||||||
|
|
||||||
|
This patch is downstream-specific due to annobin.
|
||||||
|
|
||||||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
|
index 2b5b02959e99eb8f..e5ff21515c36d30f 100644
|
||||||
|
--- a/src/Makefile.am
|
||||||
|
+++ b/src/Makefile.am
|
||||||
|
@@ -147,7 +147,7 @@ libunwind_la_SOURCES_local = \
|
||||||
|
$(libunwind_la_SOURCES_local_unwind)
|
||||||
|
|
||||||
|
noinst_HEADERS += os-linux.h
|
||||||
|
-libunwind_la_SOURCES_os_linux = os-linux.c dl-iterate-phdr.c
|
||||||
|
+libunwind_la_SOURCES_os_linux = os-linux.c
|
||||||
|
|
||||||
|
libunwind_la_SOURCES_os_hpux = os-hpux.c
|
||||||
|
|
20
libunwind-skip-no-coredump.patch
Normal file
20
libunwind-skip-no-coredump.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
This is needed because under mock (especially with a systemd-coredump
|
||||||
|
handler on the system), no core files are created.
|
||||||
|
|
||||||
|
Submitted upstream: https://github.com/libunwind/libunwind/pull/418
|
||||||
|
|
||||||
|
diff --git a/tests/run-coredump-unwind b/tests/run-coredump-unwind
|
||||||
|
index 8d07742574602328..0c2b28c942477f7d 100755
|
||||||
|
--- a/tests/run-coredump-unwind
|
||||||
|
+++ b/tests/run-coredump-unwind
|
||||||
|
@@ -48,6 +48,10 @@ fi
|
||||||
|
./crasher backing_files
|
||||||
|
) 2>/dev/null
|
||||||
|
COREFILE=$TEMPDIR/core*
|
||||||
|
+if ! test -f "$COREFILE"; then
|
||||||
|
+ echo "crasher process did not produce coredump, test skipped"
|
||||||
|
+ exit 77
|
||||||
|
+fi
|
||||||
|
|
||||||
|
# magic option -testcase enables checking for the specific contents of the stack
|
||||||
|
./test-coredump-unwind $COREFILE -testcase `cat $TEMPDIR/backing_files`
|
292
libunwind.spec
292
libunwind.spec
@ -1,89 +1,303 @@
|
|||||||
# rpmbuild parameters:
|
# The testsuite does not pass on all targets.
|
||||||
# --without check: Do not run the testsuite. Default is to run it.
|
#
|
||||||
|
# aarch64
|
||||||
|
# Gtest-exc
|
||||||
|
# Ltest-exc
|
||||||
|
# Gtest-trace
|
||||||
|
# Ltest-trace
|
||||||
|
# Ltest-init-local-signal
|
||||||
|
# Ltest-mem-validate: https://github.com/libunwind/libunwind/issues/388
|
||||||
|
# test-reg-state
|
||||||
|
# Ltest-varargs
|
||||||
|
# Lrs-race
|
||||||
|
# test-ptrace
|
||||||
|
# run-check-namespace: https://github.com/libunwind/libunwind/issues/389
|
||||||
|
# run-ptrace-mapper
|
||||||
|
# run-ptrace-misc
|
||||||
|
# i686
|
||||||
|
# Ltest-mem-validate: https://github.com/libunwind/libunwind/issues/391
|
||||||
|
# test-async-sig
|
||||||
|
# test-ptrace
|
||||||
|
# ppc64le
|
||||||
|
# Gtest-exc
|
||||||
|
# Ltest-exc
|
||||||
|
# Gtest-resume-sig
|
||||||
|
# Ltest-resume-sig
|
||||||
|
# Gtest-resume-sig-rt
|
||||||
|
# Ltest-resume-sig-rt
|
||||||
|
# test-ptrace
|
||||||
|
# run-check-namespace
|
||||||
|
# run-ptrace-mapper
|
||||||
|
# run-ptrace-misc
|
||||||
|
#
|
||||||
|
# s390x
|
||||||
|
# Gtest-resume-sig-rt
|
||||||
|
# Ltest-resume-sig-rt
|
||||||
|
# test-ptrace
|
||||||
|
|
||||||
# Define this if you want to skip the strip step and preserve debug info.
|
%ifarch aarch64 i686 ppc64le s390x
|
||||||
# Useful for testing.
|
%global test_failure_override true
|
||||||
#define __debug_install_post : > %{_builddir}/%{?buildsubdir}/debugfiles.list
|
%else
|
||||||
|
%global test_failure_override false
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%global prerel rc2
|
||||||
|
|
||||||
Summary: An unwinding library
|
Summary: An unwinding library
|
||||||
Name: libunwind
|
Name: libunwind
|
||||||
Version: 0.99
|
Version: 1.7.0
|
||||||
%define snapshot 20090430betagit4b8404d1
|
Release: 0.1.%{prerel}%{?dist}
|
||||||
Release: 0.13.%{snapshot}%{?dist}
|
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: Development/Debuggers
|
|
||||||
Source: libunwind-%{snapshot}.tar.bz2
|
|
||||||
Patch1: libunwind-disable-setjmp.patch
|
|
||||||
URL: http://savannah.nongnu.org/projects/libunwind
|
URL: http://savannah.nongnu.org/projects/libunwind
|
||||||
ExclusiveArch: arm hppa ia64 mips ppc ppc64 %{ix86} x86_64
|
Source: https://github.com/libunwind/libunwind/archive/refs/tags/v%{version}-%{prerel}.tar.gz
|
||||||
|
# http://download-mirror.savannah.gnu.org/releases/libunwind/libunwind-%%{version}.tar.gz
|
||||||
|
|
||||||
BuildRequires: automake libtool autoconf
|
#Fedora specific patch
|
||||||
Conflicts: gdb < 6.6-9
|
Patch1: libunwind-arm-default-to-exidx.patch
|
||||||
|
# Make libunwind.h multilib friendly
|
||||||
|
Patch2: libunwind-1.3.1-multilib-fix.patch
|
||||||
|
Patch5: libunwind-no-dl-iterate-phdr.patch
|
||||||
|
|
||||||
|
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
|
||||||
|
|
||||||
|
BuildRequires: automake libtool autoconf texlive-latex2man
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
|
||||||
# host != target would cause REMOTE_ONLY build even if building i386 on x86_64.
|
# host != target would cause REMOTE_ONLY build even if building i386 on x86_64.
|
||||||
%define _host %{_target_platform}
|
%global _host %{_target_platform}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Libunwind provides a C ABI to determine the call-chain of a program.
|
Libunwind provides a C ABI to determine the call-chain of a program.
|
||||||
This version of libunwind is targetted for the ia64 platform.
|
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development package for libunwind
|
Summary: Development package for libunwind
|
||||||
Group: Development/Debuggers
|
|
||||||
Requires: libunwind = %{version}-%{release}
|
Requires: libunwind = %{version}-%{release}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
The libunwind-devel package includes the libraries and header files for
|
The libunwind-devel package includes the libraries and header files for
|
||||||
libunwind.
|
libunwind.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n libunwind-%{snapshot}
|
%autosetup -p1 -n %{name}-%{version}-%{prerel}
|
||||||
%patch1 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
%global optflags %{optflags} -fcommon
|
||||||
aclocal
|
aclocal
|
||||||
libtoolize --force
|
libtoolize --force
|
||||||
autoheader
|
autoheader
|
||||||
automake --add-missing
|
automake --add-missing
|
||||||
autoconf
|
autoconf
|
||||||
%configure --disable-static --enable-shared
|
%configure --enable-static --enable-shared --enable-setjmp=no
|
||||||
make
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%makeinstall
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
rm -f $RPM_BUILD_ROOT/%{_libdir}/libunwind*.{la,a}
|
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
|
||||||
|
|
||||||
|
# /usr/include/libunwind-ptrace.h
|
||||||
|
# [...] aren't really part of the libunwind API. They are implemented in
|
||||||
|
# a archive library called libunwind-ptrace.a.
|
||||||
|
mv -f $RPM_BUILD_ROOT%{_libdir}/libunwind-ptrace.a $RPM_BUILD_ROOT%{_libdir}/libunwind-ptrace.a-save
|
||||||
|
rm -f $RPM_BUILD_ROOT%{_libdir}/libunwind*.a
|
||||||
|
mv -f $RPM_BUILD_ROOT%{_libdir}/libunwind-ptrace.a-save $RPM_BUILD_ROOT%{_libdir}/libunwind-ptrace.a
|
||||||
|
rm -f $RPM_BUILD_ROOT%{_libdir}/libunwind-ptrace*.so*
|
||||||
|
|
||||||
|
# fix multilib conflicts
|
||||||
|
touch -r NEWS $RPM_BUILD_ROOT%{_includedir}/libunwind.h
|
||||||
|
|
||||||
%check
|
%check
|
||||||
%if 0%{?_with_check:1} || 0%{?_with_testsuite:1}
|
|
||||||
echo ====================TESTING=========================
|
echo ====================TESTING=========================
|
||||||
make check || true
|
if ! make check ; then
|
||||||
|
echo ====================FAILED TESTS=====================
|
||||||
|
cat tests/test-suite.log || true
|
||||||
|
%{test_failure_override}
|
||||||
|
fi
|
||||||
echo ====================TESTING END=====================
|
echo ====================TESTING END=====================
|
||||||
%else
|
|
||||||
echo ====================TESTSUITE DISABLED=========================
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%clean
|
%ldconfig_scriptlets
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%postun -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%license COPYING
|
||||||
%doc COPYING README NEWS
|
%doc README NEWS
|
||||||
%{_libdir}/libunwind*.so.*
|
%{_libdir}/libunwind*.so.*
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libunwind*.so
|
%{_libdir}/libunwind*.so
|
||||||
|
%{_libdir}/libunwind-ptrace.a
|
||||||
|
%{_libdir}/pkgconfig/libunwind*.pc
|
||||||
%{_mandir}/*/*
|
%{_mandir}/*/*
|
||||||
# <unwind.h> does not get installed for REMOTE_ONLY targets - check it.
|
# <unwind.h> does not get installed for REMOTE_ONLY targets - check it.
|
||||||
%{_includedir}/unwind.h
|
%{_includedir}/unwind.h
|
||||||
%{_includedir}/libunwind*.h
|
%{_includedir}/libunwind*.h
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 20 2023 Tom Callaway <spot@fedoraproject.org> - 1.7.0-0.1.rc2
|
||||||
|
- update to 1.7.0-rc2
|
||||||
|
- disable tests on s390x (reported upstream: https://github.com/libunwind/libunwind/issues/464)
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Sep 7 2022 Florian Weimer <fweimer@redhat.com> - 1.6.2-5
|
||||||
|
- Run the testsuite during build
|
||||||
|
|
||||||
|
* Wed Sep 7 2022 Florian Weimer <fweimer@redhat.com> - 1.6.2-4
|
||||||
|
- Enable %%autosetup to apply all patches (#2118019)
|
||||||
|
|
||||||
|
* Sun Aug 28 2022 Leif Liddy <leif.liddy@gmail.com> - 1.6.2-3
|
||||||
|
- enable dynamic page size support (bz2118019)
|
||||||
|
|
||||||
|
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Dec 20 2021 Tom Callaway <spot@fedoraproject.org> - 1.6.2-1
|
||||||
|
- update to 1.6.2
|
||||||
|
|
||||||
|
* Wed Jul 21 2021 Tom Callaway <spot@fedoraproject.org> - 1.5.0-1
|
||||||
|
- update to 1.5.0
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Aug 13 2020 Tom Callaway <spot@fedoraproject.org> - 1.4.0-4
|
||||||
|
- revert previous change
|
||||||
|
- fix it properly
|
||||||
|
|
||||||
|
* Mon Aug 10 2020 Tom Callaway <spot@fedoraproject.org> - 1.4.0-3
|
||||||
|
- fix multilib issues with libunwind.h (bz1866512)
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Apr 14 2020 Dan Horák <dan[at]danny.cz> - 1.4.0-1
|
||||||
|
- Update to 1.4.0 with s390x support
|
||||||
|
|
||||||
|
* Fri Jan 31 2020 Tom Callaway <spot@fedoraproject.org> - 1.3.1-5
|
||||||
|
- backport change from upstream to fix reported test failures (bz1795896)
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jan 13 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 1.3.1-1
|
||||||
|
- Update to 1.3.1
|
||||||
|
- Remove no longer needed patch (builds on all arches without it)
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.2.1-5
|
||||||
|
- Escape macros in %%changelog
|
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Oct 29 2017 Tom Callaway <spot@fedoraproject.org> - 1.2.1-3
|
||||||
|
- fix multilib conflicts
|
||||||
|
|
||||||
|
* Sat Oct 14 2017 Peter Robinson <pbrobinson@fedoraproject.org> 1.2.1-2
|
||||||
|
- Add patch to fix ARM issues
|
||||||
|
|
||||||
|
* Fri Sep 1 2017 Tom Callaway <spot@fedoraproject.org> - 1.2.1-1
|
||||||
|
- update to 1.2.1
|
||||||
|
|
||||||
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jun 1 2017 Jes Sorensen <jes.sorensen@gmail.com> - 1.2-1
|
||||||
|
- Update to libunwind-1.2 (#1439962)
|
||||||
|
- Disable setjmp the correct way and get rid of messy patch
|
||||||
|
|
||||||
|
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-12
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-11
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 10 2015 Tom Callaway <spot@fedoraproject.org> - 1.1-10
|
||||||
|
- fix CVE-2015-3239
|
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jun 2 2015 Tom Callaway <spot@fedoraproject.org> - 1.1-8
|
||||||
|
- default arm unwinding method to exidx, old default of dwarf never works on Fedora
|
||||||
|
(#1226806)
|
||||||
|
|
||||||
|
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue May 13 2014 Jaromir Capik <jcapik@redhat.com> - 1.1-5
|
||||||
|
- Replacing ppc64 with the power64 macro (#1051641)
|
||||||
|
|
||||||
|
* Mon Jan 20 2014 Kyle McMartin <kmcmarti@redhat.com> 1.1-4
|
||||||
|
- Link test_ppc64_altivec against libunwind in tests/Makefile.am to fix build
|
||||||
|
on ppc64.
|
||||||
|
|
||||||
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 03 2013 Kyle McMartin <kmcmarti@redhat.com> 1.1-2
|
||||||
|
- Add aarch64 support from backported ac6c0a65. (Mark Salter)
|
||||||
|
(rhbz#969689)
|
||||||
|
|
||||||
|
* Mon Feb 18 2013 Kyle McMartin <kmcmarti@redhat.com> 1.1-1
|
||||||
|
- Update to upstream v1.1
|
||||||
|
- libunwind-install-ptrace.patch: drop upstream patch
|
||||||
|
- libunwind-arm-register-rename.patch: fixed upstream
|
||||||
|
- Add pkg-config files to libunwind-devel
|
||||||
|
|
||||||
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.1-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Feb 15 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.0.1-3
|
||||||
|
- Add patch to fix build on ARM
|
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Sep 15 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 1.0.1-1.fc17
|
||||||
|
- Upgrade to the upstream release. (BZ 738595).
|
||||||
|
- Use official distribution URL for %%{source}.
|
||||||
|
|
||||||
|
* Thu Jun 02 2011 Paul Whalen <paul.whalen@senecac.on.ca> - 0.99-3.20110424git1e10c293
|
||||||
|
- Added arm macro to ExclusiveArch
|
||||||
|
|
||||||
|
* Mon May 9 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 0.99-2.20110424git1e10c293
|
||||||
|
- Install static libunwind-ptrace library into system (for ltrace, BZ 703159).
|
||||||
|
|
||||||
|
* Sun Apr 24 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 0.99-1.20110424git1e10c293
|
||||||
|
- Rebase to the upstream post-0.99 snapshot (BZ 697453).
|
||||||
|
|
||||||
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99-0.16.20090430betagit4b8404d1
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Sep 29 2010 jkeating - 0.99-0.15.20090430betagit4b8404d1
|
||||||
|
- Rebuilt for gcc bug 634757
|
||||||
|
|
||||||
|
* Sat Sep 11 2010 Parag Nemade <paragn AT fedoraproject.org> 0.99-0.14.20090430betagit4b8404d1.fc15
|
||||||
|
- Merge-review cleanup (#226052)
|
||||||
|
|
||||||
* Fri Dec 4 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99-0.13.20090430betagit4b8404d1
|
* Fri Dec 4 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99-0.13.20090430betagit4b8404d1
|
||||||
- The devel package now requires also base package's %{release}.
|
- The devel package now requires also base package's %%{release}.
|
||||||
- Update the obsolete macro %%{package_version}.
|
- Update the obsolete macro %%{package_version}.
|
||||||
|
|
||||||
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99-0.12.20090430betagit4b8404d1
|
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99-0.12.20090430betagit4b8404d1
|
||||||
@ -142,7 +356,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
* Sun Oct 01 2006 Jesse Keating <jkeating@redhat.com> - 0.98.5-3
|
* Sun Oct 01 2006 Jesse Keating <jkeating@redhat.com> - 0.98.5-3
|
||||||
- rebuilt for unwind info generation, broken in gcc-4.1.1-21
|
- rebuilt for unwind info generation, broken in gcc-4.1.1-21
|
||||||
|
|
||||||
* Sat Sep 22 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 0.98.5-2
|
* Fri Sep 22 2006 Jan Kratochvil <jan.kratochvil@redhat.com> - 0.98.5-2
|
||||||
- SELinux compatibility fix - stack is now non-exec (Jakub Jelinek suggestion).
|
- SELinux compatibility fix - stack is now non-exec (Jakub Jelinek suggestion).
|
||||||
|
|
||||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.98.5-1.1
|
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.98.5-1.1
|
||||||
|
Loading…
Reference in New Issue
Block a user