Compare commits

...

35 Commits
f26 ... rawhide

Author SHA1 Message Date
Tom Callaway 09708d8e63 disable tests on s390x (reported upstream: https://github.com/libunwind/libunwind/issues/464) 2023-02-20 09:55:19 -05:00
Tom Callaway a1c16ce0a0 update to 1.7.0-rc2 2023-02-20 09:36:49 -05:00
Fedora Release Engineering 849837b480 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 17:42:31 +00:00
Florian Weimer b66625d929 Merge f37 into rawhide, discarding changes 2022-11-16 14:39:26 +01:00
spotrh 2886742cb0 bump rel 2022-09-20 13:04:45 -04:00
Florian Weimer 74c255a166 Run the testsuite during build 2022-09-07 15:01:51 +02:00
Florian Weimer e72b0fc853 Enable %autosetup to apply all patches (#2118019) 2022-09-07 11:47:36 +02:00
Leif Liddy 1c74097ba6
enable dynamic page size support 2022-08-28 18:57:54 +02:00
Fedora Release Engineering fadd9f99a4 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 19:17:20 +00:00
Fedora Release Engineering 1ac07540e4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 17:30:37 +00:00
Tom spot Callaway af27c5c860 1.6.2 2021-12-20 12:10:07 -05:00
Tom spot Callaway 61b9af32dd 1.5.0 2021-07-21 13:59:31 -04:00
Fedora Release Engineering efb668858b - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 18:13:27 +00:00
Tom Stellard a55e1b8ba6 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-05 02:58:57 +00:00
Tom Callaway 7fe03d7b7a revert previous change, fix it properly 2020-08-13 10:09:18 -04:00
Tom Callaway 0d267b17df fix multilib issues with libunwind.h (bz1866512) 2020-08-10 16:07:27 -04:00
Fedora Release Engineering dd778107e0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 05:48:33 +00:00
Dan Horák 5d7bc24451 - Update to 1.4.0 with s390x support 2020-04-14 12:13:39 +02:00
Tom Callaway ec928ec8df backport change from upstream to fix reported test failures (bz1795896) 2020-01-31 10:32:43 -05:00
Fedora Release Engineering bfdacd72c0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 10:39:27 +00:00
Fedora Release Engineering ccdcb646de - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 14:37:32 +00:00
Fedora Release Engineering d1c7cb2e27 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 08:27:00 +00:00
Igor Gnatenko bf773e8b2a Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:13 +01:00
Igor Gnatenko 4a34d35cbc
Remove obsolete ldconfig scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-22 18:40:13 +01:00
Ankur Sinha (Ankur Sinha Gmail) 3dda0e75f7
Update to 1.3.1
Fixes rhbz #1462042

- remove unneeded patch

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=32003635
2019-01-13 20:26:26 +00:00
Fedora Release Engineering a4bb342886 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 08:59:10 +00:00
Igor Gnatenko aacb7d40c8
Escape macros in %changelog
Reference: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/Y2ZUKK2B7T2IKXPMODNF6HB2O5T5TS6H/
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-09 09:05:00 +01:00
Fedora Release Engineering ebfaa2672e - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 23:35:41 +00:00
Tom Callaway 90f7c40cdb fix pathing 2017-10-29 10:00:50 -04:00
Tom Callaway ee3845b174 fix multilib conflicts 2017-10-29 09:54:26 -04:00
Peter Robinson 977148dd03 ARM fix, minor spec file cleanups 2017-10-14 19:36:19 +01:00
Tom Callaway 58ed0646c8 1.2.1 2017-09-01 17:02:55 -04:00
Fedora Release Engineering 1129981482 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 02:26:44 +00:00
Fedora Release Engineering a81d7b32e2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 19:54:18 +00:00
Jes Sorensen 1815d8ee0b Update to libunwind-1.2 (#1439962)
Signed-off-by: Jes Sorensen <Jes.Sorensen@gmail.com>
2017-06-01 14:49:12 -04:00
12 changed files with 596 additions and 2813 deletions

3
.gitignore vendored
View File

@ -1 +1,2 @@
/libunwind-1.1.tar.gz
/libunwind-*.tar.gz
/v1.7.0-rc2.tar.gz

View File

@ -1,12 +0,0 @@
diff -up libunwind-1.1/include/dwarf_i.h.CVE20153239 libunwind-1.1/include/dwarf_i.h
--- libunwind-1.1/include/dwarf_i.h.CVE20153239 2015-07-10 13:38:36.404996748 -0400
+++ libunwind-1.1/include/dwarf_i.h 2015-07-10 13:39:25.050707613 -0400
@@ -20,7 +20,7 @@
extern const uint8_t dwarf_to_unw_regnum_map[DWARF_REGNUM_MAP_LENGTH];
/* REG is evaluated multiple times; it better be side-effects free! */
# define dwarf_to_unw_regnum(reg) \
- (((reg) <= DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0)
+ (((reg) < DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0)
#endif
#ifdef UNW_LOCAL_ONLY

View 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 */

View 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;

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,15 @@
diff -up libunwind-1.1/src/arm/Gglobal.c.default-to-exidx libunwind-1.1/src/arm/Gglobal.c
--- libunwind-1.1/src/arm/Gglobal.c.default-to-exidx 2015-06-02 10:38:39.733587918 -0400
+++ libunwind-1.1/src/arm/Gglobal.c 2015-06-02 10:38:53.086500142 -0400
@@ -29,7 +29,10 @@ HIDDEN define_lock (arm_lock);
HIDDEN int tdep_init_done;
/* Unwinding methods to use. See UNW_METHOD_ enums */
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
tdep_init (void)

View File

@ -1,185 +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 .
diff --git a/src/Makefile.am b/src/Makefile.am
index adfbef3..08d2870 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,5 @@
SOVERSION=8:1:0 # See comments at end of file.
-SETJMP_SO_VERSION=0:0:0
+#SETJMP_SO_VERSION=0:0:0
COREDUMP_SO_VERSION=0:0:0
#
# Don't link with start-files since we don't use any constructors/destructors:
@@ -22,8 +22,8 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libunwind-generic.pc
if !REMOTE_ONLY
-pkgconfig_DATA += unwind/libunwind.pc ptrace/libunwind-ptrace.pc \
- setjmp/libunwind-setjmp.pc
+pkgconfig_DATA += unwind/libunwind.pc ptrace/libunwind-ptrace.pc
+# setjmp/libunwind-setjmp.pc
endif
if BUILD_COREDUMP
@@ -61,8 +61,8 @@ libunwind_coredump_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
noinst_HEADERS += coredump/_UCD_internal.h
### libunwind-setjmp:
-libunwind_setjmp_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
- -version-info $(SETJMP_SO_VERSION)
+#libunwind_setjmp_la_LDFLAGS = $(COMMON_SO_LDFLAGS) \
+# -version-info $(SETJMP_SO_VERSION)
if USE_ELF32
LIBUNWIND_ELF = libunwind-elf32.la
@@ -74,12 +74,12 @@ if USE_ELFXX
LIBUNWIND_ELF = libunwind-elfxx.la
endif
-libunwind_setjmp_la_LIBADD = $(LIBUNWIND_ELF) \
- libunwind-$(arch).la \
- libunwind.la -lc
-libunwind_setjmp_la_SOURCES = setjmp/longjmp.c \
- setjmp/siglongjmp.c
-noinst_HEADERS += setjmp/setjmp_i.h
+#libunwind_setjmp_la_LIBADD = $(LIBUNWIND_ELF) \
+# libunwind-$(arch).la \
+# libunwind.la -lc
+#libunwind_setjmp_la_SOURCES = setjmp/longjmp.c \
+# setjmp/siglongjmp.c
+#noinst_HEADERS += setjmp/setjmp_i.h
### libunwind:
libunwind_la_LIBADD =
@@ -428,7 +428,7 @@ if ARCH_ARM
if !REMOTE_ONLY
libunwind_arm_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += arm/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += arm/siglongjmp.S
else
if ARCH_IA64
BUILT_SOURCES = Gcursor_i.h Lcursor_i.h
@@ -449,8 +449,8 @@ Lcursor_i.h: mk_Lcursor_i.s
if !REMOTE_ONLY
libunwind_ia64_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += ia64/setjmp.S ia64/sigsetjmp.S \
- ia64/longjmp.S ia64/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += ia64/setjmp.S ia64/sigsetjmp.S \
+# ia64/longjmp.S ia64/siglongjmp.S
else
if ARCH_HPPA
lib_LTLIBRARIES += libunwind-hppa.la
@@ -462,7 +462,7 @@ if ARCH_HPPA
if !REMOTE_ONLY
libunwind_hppa_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += hppa/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += hppa/siglongjmp.S
else
if ARCH_MIPS
lib_LTLIBRARIES += libunwind-mips.la
@@ -474,7 +474,7 @@ if ARCH_MIPS
if !REMOTE_ONLY
libunwind_mips_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += mips/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += mips/siglongjmp.S
else
if ARCH_X86
lib_LTLIBRARIES += libunwind-x86.la
@@ -486,7 +486,7 @@ if ARCH_X86
if !REMOTE_ONLY
libunwind_x86_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += x86/longjmp.S x86/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += x86/longjmp.S x86/siglongjmp.S
else
if ARCH_X86_64
lib_LTLIBRARIES += libunwind-x86_64.la
@@ -498,7 +498,7 @@ if ARCH_X86_64
if !REMOTE_ONLY
libunwind_x86_64_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += x86_64/longjmp.S x86_64/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += x86_64/longjmp.S x86_64/siglongjmp.S
else
if ARCH_PPC32
lib_LTLIBRARIES += libunwind-ppc32.la
@@ -510,7 +510,7 @@ if ARCH_PPC32
if !REMOTE_ONLY
libunwind_ppc32_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += ppc/longjmp.S ppc/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += ppc/longjmp.S ppc/siglongjmp.S
else
if ARCH_PPC64
lib_LTLIBRARIES += libunwind-ppc64.la
@@ -522,7 +522,7 @@ if ARCH_PPC64
if !REMOTE_ONLY
libunwind_ppc64_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += ppc/longjmp.S ppc/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += ppc/longjmp.S ppc/siglongjmp.S
else
if ARCH_SH
lib_LTLIBRARIES += libunwind-sh.la
@@ -534,7 +534,7 @@ if ARCH_SH
if !REMOTE_ONLY
libunwind_sh_la_LIBADD += libunwind.la -lc
endif
- libunwind_setjmp_la_SOURCES += sh/siglongjmp.S
+# libunwind_setjmp_la_SOURCES += sh/siglongjmp.S
endif # ARCH_SH
endif # ARCH_PPC64
@@ -549,7 +549,7 @@ endif # ARCH_ARM
# libunwind-setjmp depends on libunwind-$(arch). Therefore must be added
# at the end.
if !REMOTE_ONLY
-lib_LTLIBRARIES += libunwind-setjmp.la
+#lib_LTLIBRARIES += libunwind-setjmp.la
endif
#
diff --git a/tests/Makefile.am b/tests/Makefile.am
index a367eed..3f47e80 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -45,7 +45,7 @@ endif #!ARCH_IA64
Gtest-dyn1 Ltest-dyn1 \
Gtest-trace Ltest-trace \
test-async-sig test-flush-cache test-init-remote \
- test-mem test-setjmp test-ptrace Ltest-varargs \
+ test-mem test-ptrace Ltest-varargs \
Ltest-nomalloc Ltest-nocalloc Lrs-race
noinst_PROGRAMS_cdep = forker crasher mapper test-ptrace-misc \
Gperf-simple Lperf-simple
@@ -134,8 +134,8 @@ if USE_ELFXX
LIBUNWIND_ELF = $(top_builddir)/src/libunwind-elfxx.la
endif
-LIBUNWIND_setjmp = $(top_builddir)/src/libunwind-setjmp.la \
- $(LIBUNWIND_ELF) $(LIBUNWIND)
+#LIBUNWIND_setjmp = $(top_builddir)/src/libunwind-setjmp.la \
+# $(LIBUNWIND_ELF) $(LIBUNWIND)
test_async_sig_LDADD = $(LIBUNWIND_local) -lpthread
test_flush_cache_LDADD = $(LIBUNWIND_local)
@@ -172,8 +172,8 @@ Lperf_simple_LDADD = $(LIBUNWIND_local)
Ltest_trace_LDADD = $(LIBUNWIND_local)
Lperf_trace_LDADD = $(LIBUNWIND_local)
-test_setjmp_LDADD = $(LIBUNWIND_setjmp)
-ia64_test_setjmp_LDADD = $(LIBUNWIND_setjmp)
+#test_setjmp_LDADD = $(LIBUNWIND_setjmp)
+#ia64_test_setjmp_LDADD = $(LIBUNWIND_setjmp)
if BUILD_COREDUMP
test_coredump_unwind_LDADD = $(LIBUNWIND_coredump) $(LIBUNWIND)

View File

@ -1,9 +0,0 @@
diff -Nur libunwind-1.1/tests/Makefile.am libunwind-1.1~/tests/Makefile.am
--- libunwind-1.1/tests/Makefile.am 2014-01-20 11:26:56.229924564 -0500
+++ libunwind-1.1~/tests/Makefile.am 2014-01-20 11:25:39.318794342 -0500
@@ -189,3 +189,5 @@
Lia64_test_readonly_LDADD = $(LIBUNWIND_local)
ia64_test_dyn1_LDADD = $(LIBUNWIND)
ia64_test_sig_LDADD = $(LIBUNWIND)
+
+ppc64_test_altivec_LDADD = $(LIBUNWIND)

View 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

View 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`

View File

@ -1,23 +1,68 @@
# rpmbuild parameters:
# --without check: Do not run the testsuite. Default is to run it.
# The testsuite does not pass on all targets.
#
# 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
%ifarch aarch64 i686 ppc64le s390x
%global test_failure_override true
%else
%global test_failure_override false
%endif
%global prerel rc2
Summary: An unwinding library
Name: libunwind
Version: 1.1
Release: 12%{?dist}
Version: 1.7.0
Release: 0.1.%{prerel}%{?dist}
License: BSD
Group: Development/Debuggers
Source: http://download.savannah.gnu.org/releases/libunwind/libunwind-%{version}.tar.gz
#Fedora specific patch
Patch1: libunwind-disable-setjmp.patch
Patch2: libunwind-aarch64.patch
Patch3: libunwind-fix-ppc64_test_altivec.patch
Patch4: libunwind-arm-default-to-exidx.patch
Patch5: libunwind-1.1-fix-CVE-2015-3239.patch
URL: http://savannah.nongnu.org/projects/libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{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
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.
%global _host %{_target_platform}
@ -27,7 +72,6 @@ Libunwind provides a C ABI to determine the call-chain of a program.
%package devel
Summary: Development package for libunwind
Group: Development/Debuggers
Requires: libunwind = %{version}-%{release}
%description devel
@ -35,20 +79,16 @@ The libunwind-devel package includes the libraries and header files for
libunwind.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1 -b .default-to-exidx
%patch5 -p1 -b .CVE-2015-3239
%autosetup -p1 -n %{name}-%{version}-%{prerel}
%build
%global optflags %{optflags} -fcommon
aclocal
libtoolize --force
autoheader
automake --add-missing
autoconf
%configure --enable-static --enable-shared
%configure --enable-static --enable-shared --enable-setjmp=no
make %{?_smp_mflags}
%install
@ -63,26 +103,26 @@ 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
%if 0%{?_with_check:1} || 0%{?_with_testsuite:1}
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=====================
%else
echo ====================TESTSUITE DISABLED=========================
%endif
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%ldconfig_scriptlets
%files
%defattr(-,root,root,-)
%doc COPYING README NEWS
%license COPYING
%doc README NEWS
%{_libdir}/libunwind*.so.*
%files devel
%defattr(-,root,root,-)
%{_libdir}/libunwind*.so
%{_libdir}/libunwind-ptrace.a
%{_libdir}/pkgconfig/libunwind*.pc
@ -92,6 +132,94 @@ echo ====================TESTSUITE DISABLED=========================
%{_includedir}/libunwind*.h
%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
@ -169,7 +297,7 @@ echo ====================TESTSUITE DISABLED=========================
- Merge-review cleanup (#226052)
* 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}.
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99-0.12.20090430betagit4b8404d1
@ -228,7 +356,7 @@ echo ====================TESTSUITE DISABLED=========================
* 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
* 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).
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.98.5-1.1

View File

@ -1 +1 @@
fb4ea2f6fbbe45bf032cd36e586883ce libunwind-1.1.tar.gz
SHA512 (v1.7.0-rc2.tar.gz) = 09920dffd7ab7eb18c3ec5ed3cbb78cc66e7456e465d7454c48d2d9d015e76d2ee78af42b34ccd85f4a15a2d61b1da461dcee12adadcfcf1ae4af3a2ecc59df3