Compare commits
No commits in common. "rawhide" and "f35" have entirely different histories.
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1 @@
|
||||
/libunwind-*.tar.gz
|
||||
/v1.7.0-rc2.tar.gz
|
||||
|
@ -1,355 +0,0 @@
|
||||
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;
|
@ -1,15 +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
|
||||
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 */
|
||||
-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)
|
||||
|
@ -1,25 +0,0 @@
|
||||
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
|
||||
|
@ -1,20 +0,0 @@
|
||||
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`
|
@ -1,68 +1,23 @@
|
||||
# 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
|
||||
# rpmbuild parameters:
|
||||
# --without check: Do not run the testsuite. Default is to run it.
|
||||
|
||||
Summary: An unwinding library
|
||||
Name: libunwind
|
||||
Version: 1.7.0
|
||||
Release: 0.1.%{prerel}%{?dist}
|
||||
Version: 1.5.0
|
||||
Release: 1%{?dist}
|
||||
License: BSD
|
||||
URL: http://savannah.nongnu.org/projects/libunwind
|
||||
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
|
||||
Source: http://download-mirror.savannah.gnu.org/releases/libunwind/libunwind-%{version}.tar.gz
|
||||
|
||||
#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}
|
||||
@ -79,7 +34,9 @@ The libunwind-devel package includes the libraries and header files for
|
||||
libunwind.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{name}-%{version}-%{prerel}
|
||||
%setup -q
|
||||
%patch1 -p1 -b .default-to-exidx
|
||||
%patch2 -p1 -b .multilib-fix
|
||||
|
||||
%build
|
||||
%global optflags %{optflags} -fcommon
|
||||
@ -107,13 +64,13 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libunwind-ptrace*.so*
|
||||
touch -r NEWS $RPM_BUILD_ROOT%{_includedir}/libunwind.h
|
||||
|
||||
%check
|
||||
%if 0%{?_with_check:1} || 0%{?_with_testsuite:1}
|
||||
echo ====================TESTING=========================
|
||||
if ! make check ; then
|
||||
echo ====================FAILED TESTS=====================
|
||||
cat tests/test-suite.log || true
|
||||
%{test_failure_override}
|
||||
fi
|
||||
make check || true
|
||||
echo ====================TESTING END=====================
|
||||
%else
|
||||
echo ====================TESTSUITE DISABLED=========================
|
||||
%endif
|
||||
|
||||
%ldconfig_scriptlets
|
||||
|
||||
@ -132,31 +89,6 @@ echo ====================TESTING END=====================
|
||||
%{_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
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (v1.7.0-rc2.tar.gz) = 09920dffd7ab7eb18c3ec5ed3cbb78cc66e7456e465d7454c48d2d9d015e76d2ee78af42b34ccd85f4a15a2d61b1da461dcee12adadcfcf1ae4af3a2ecc59df3
|
||||
SHA512 (libunwind-1.5.0.tar.gz) = 1df20ca7a8cee2f2e61294fa9b677e88fec52e9d5a329f88d05c2671c69fa462f6c18808c97ca9ff664ef57292537a844f00b18d142b1938c9da701ca95a4bab
|
||||
|
Loading…
Reference in New Issue
Block a user