Github messages for voidlinux
 help / color / mirror / Atom feed
* Re: [PR PATCH] [Updated] pagesize fixes for compat with rpi5-kernel
       [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
@ 2024-01-13  9:31 ` classabbyamp
  2024-01-13  9:35 ` classabbyamp
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: classabbyamp @ 2024-01-13  9:31 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 612 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages rpi5-fixes
https://github.com/void-linux/void-packages/pull/48194

pagesize fixes for compat with rpi5-kernel
various changes based on https://github.com/AsahiLinux/docs/wiki/Broken-Software#broken-packages

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**


A patch file from https://github.com/void-linux/void-packages/pull/48194.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi5-fixes-48194.patch --]
[-- Type: text/x-diff, Size: 21174 bytes --]

From 268ce76b04b1335d370409018e748766d8067d6e Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:54:31 -0500
Subject: [PATCH 1/4] jemalloc: support larger pagesizes

---
 srcpkgs/jemalloc/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/jemalloc/template b/srcpkgs/jemalloc/template
index eb7efd5dfd75d..2ce569289f9f5 100644
--- a/srcpkgs/jemalloc/template
+++ b/srcpkgs/jemalloc/template
@@ -1,9 +1,9 @@
 # Template file for 'jemalloc'
 pkgname=jemalloc
 version=5.2.1
-revision=1
+revision=2
 build_style=gnu-configure
-configure_args="je_cv_static_page_shift=12"
+configure_args="--with-lg-page=16"
 short_desc="General-purpose scalable concurrent malloc(3) implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"

From 5b5c7469032bca38e9f2ee7c0b4b98e517936481 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:55:06 -0500
Subject: [PATCH 2/4] common/build-helper/rust.sh: support larger pagesizes

intentionally not forcing the usage of system jemalloc because it builds
with an unprefixed malloc and thus jemalloc's malloc can unintentionally
be used for linked C libraries
---
 common/build-helper/rust.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/common/build-helper/rust.sh b/common/build-helper/rust.sh
index 460aad6a12e12..22bfd980ba9e3 100644
--- a/common/build-helper/rust.sh
+++ b/common/build-helper/rust.sh
@@ -67,3 +67,6 @@ export RUSTONIG_SYSTEM_LIBONIG=1
 
 # libsqlite3-sys
 export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
+
+# jemalloc-sys
+export JEMALLOC_SYS_WITH_LG_PAGE=16

From 8dad64acf182efb8cee01d3051d0edbab997fab2 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:57:11 -0500
Subject: [PATCH 3/4] fd: rebuild to fix jemalloc on larger pagesizes

---
 srcpkgs/fd/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/fd/template b/srcpkgs/fd/template
index 2bbe7b5dc114c..4630938b1645b 100644
--- a/srcpkgs/fd/template
+++ b/srcpkgs/fd/template
@@ -1,7 +1,7 @@
 # Template file for 'fd'
 pkgname=fd
 version=9.0.0
-revision=1
+revision=2
 build_style=cargo
 build_helper=qemu
 short_desc="Simple, fast and user-friendly alternative to find"

From 43ecf52781f28a2759970fcf9ca1f0747feca013 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 04:30:35 -0500
Subject: [PATCH 4/4] libunwind: update to 1.7.2.

fixes pagesize issues for e.g. rpi5-kernel
---
 srcpkgs/libunwind/patches/ppc32-musl.patch | 198 ---------------------
 srcpkgs/libunwind/template                 |  12 +-
 2 files changed, 4 insertions(+), 206 deletions(-)
 delete mode 100644 srcpkgs/libunwind/patches/ppc32-musl.patch

diff --git a/srcpkgs/libunwind/patches/ppc32-musl.patch b/srcpkgs/libunwind/patches/ppc32-musl.patch
deleted file mode 100644
index dc4e894a6b9da..0000000000000
--- a/srcpkgs/libunwind/patches/ppc32-musl.patch
+++ /dev/null
@@ -1,198 +0,0 @@
---- a/src/ppc32/Ginit.c
-+++ b/src/ppc32/Ginit.c
-@@ -48,12 +48,12 @@ uc_addr (ucontext_t *uc, int reg)
-   void *addr;
- 
-   if ((unsigned) (reg - UNW_PPC32_R0) < 32)
--    addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0];
-+    addr = &UC_REGS(*uc)->gregs[reg - UNW_PPC32_R0];
- 
-   else
-   if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) &&
-        ((unsigned) (reg - UNW_PPC32_F0) >= 0) )
--    addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0];
-+    addr = &UC_REGS(*uc)->fpregs.fpregs[reg - UNW_PPC32_F0];
- 
-   else
-     {
-@@ -76,7 +76,7 @@ uc_addr (ucontext_t *uc, int reg)
-         default:
-           return NULL;
-         }
--      addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx];
-+      addr = &UC_REGS(*uc)->gregs[gregs_idx];
-     }
-   return addr;
- }
---- a/src/ppc32/ucontext_i.h
-+++ b/src/ppc32/ucontext_i.h
-@@ -42,87 +42,93 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
- //#define MQ_IDX                36
- #define LINK_IDX        36
- 
-+#ifdef __GLIBC__
-+#define UC_REGS(uctx) ((uctx).uc_mcontext.uc_regs)
-+#else
-+#define UC_REGS(uctx) ((uctx).uc_regs)
-+#endif
-+
- /* These are dummy structures used only for obtaining the offsets of the
-    various structure members. */
- static ucontext_t dmy_ctxt UNUSED;
- 
--#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[0] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[1] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[2] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[3] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[4] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[5] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[6] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[7] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[8] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[9] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[10] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[11] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[12] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[13] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[14] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[15] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[16] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[17] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[18] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[19] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[20] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[21] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[22] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[23] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[24] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[25] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[26] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[27] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[28] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[29] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[30] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[31] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R0 ((void *)&UC_REGS(dmy_ctxt)->gregs[0] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R1 ((void *)&UC_REGS(dmy_ctxt)->gregs[1] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R2 ((void *)&UC_REGS(dmy_ctxt)->gregs[2] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R3 ((void *)&UC_REGS(dmy_ctxt)->gregs[3] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R4 ((void *)&UC_REGS(dmy_ctxt)->gregs[4] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R5 ((void *)&UC_REGS(dmy_ctxt)->gregs[5] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R6 ((void *)&UC_REGS(dmy_ctxt)->gregs[6] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R7 ((void *)&UC_REGS(dmy_ctxt)->gregs[7] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R8 ((void *)&UC_REGS(dmy_ctxt)->gregs[8] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R9 ((void *)&UC_REGS(dmy_ctxt)->gregs[9] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R10 ((void *)&UC_REGS(dmy_ctxt)->gregs[10] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R11 ((void *)&UC_REGS(dmy_ctxt)->gregs[11] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R12 ((void *)&UC_REGS(dmy_ctxt)->gregs[12] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R13 ((void *)&UC_REGS(dmy_ctxt)->gregs[13] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R14 ((void *)&UC_REGS(dmy_ctxt)->gregs[14] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R15 ((void *)&UC_REGS(dmy_ctxt)->gregs[15] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R16 ((void *)&UC_REGS(dmy_ctxt)->gregs[16] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R17 ((void *)&UC_REGS(dmy_ctxt)->gregs[17] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R18 ((void *)&UC_REGS(dmy_ctxt)->gregs[18] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R19 ((void *)&UC_REGS(dmy_ctxt)->gregs[19] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R20 ((void *)&UC_REGS(dmy_ctxt)->gregs[20] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R21 ((void *)&UC_REGS(dmy_ctxt)->gregs[21] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R22 ((void *)&UC_REGS(dmy_ctxt)->gregs[22] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R23 ((void *)&UC_REGS(dmy_ctxt)->gregs[23] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R24 ((void *)&UC_REGS(dmy_ctxt)->gregs[24] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R25 ((void *)&UC_REGS(dmy_ctxt)->gregs[25] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R26 ((void *)&UC_REGS(dmy_ctxt)->gregs[26] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R27 ((void *)&UC_REGS(dmy_ctxt)->gregs[27] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R28 ((void *)&UC_REGS(dmy_ctxt)->gregs[28] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R29 ((void *)&UC_REGS(dmy_ctxt)->gregs[29] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R30 ((void *)&UC_REGS(dmy_ctxt)->gregs[30] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R31 ((void *)&UC_REGS(dmy_ctxt)->gregs[31] - (void *)&dmy_ctxt)
- 
--#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[MSR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CTR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[LINK_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[XER_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CCR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DAR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_MSR ((void *)&UC_REGS(dmy_ctxt)->gregs[MSR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&UC_REGS(dmy_ctxt)->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_CTR ((void *)&UC_REGS(dmy_ctxt)->gregs[CTR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_LINK ((void *)&UC_REGS(dmy_ctxt)->gregs[LINK_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_XER ((void *)&UC_REGS(dmy_ctxt)->gregs[XER_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_CCR ((void *)&UC_REGS(dmy_ctxt)->gregs[CCR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_SOFTE ((void *)&UC_REGS(dmy_ctxt)->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_TRAP ((void *)&UC_REGS(dmy_ctxt)->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_DAR ((void *)&UC_REGS(dmy_ctxt)->gregs[DAR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_DSISR ((void *)&UC_REGS(dmy_ctxt)->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_RESULT ((void *)&UC_REGS(dmy_ctxt)->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
- 
--#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[0] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[1] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[2] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[3] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[4] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[5] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[6] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[7] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[8] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[9] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[10] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[11] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[12] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[13] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[14] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[15] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[16] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[17] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[18] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[19] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[20] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[21] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[22] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[23] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[24] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[25] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[26] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[27] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[28] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[29] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[30] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[31] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[32] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R0 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[0] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R1 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[1] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R2 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[2] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R3 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[3] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R4 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[4] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R5 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[5] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R6 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[6] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R7 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[7] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R8 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[8] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R9 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[9] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R10 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[10] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R11 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[11] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R12 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[12] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R13 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[13] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R14 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[14] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R15 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[15] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R16 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[16] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R17 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[17] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R18 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[18] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R19 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[19] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R20 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[20] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R21 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[21] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R22 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[22] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R23 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[23] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R24 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[24] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R25 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[25] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R26 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[26] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R27 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[27] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R28 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[28] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R29 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[29] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R30 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[30] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R31 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[31] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_FPSCR ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[32] - (void *)&dmy_ctxt)
- 
- #endif
diff --git a/srcpkgs/libunwind/template b/srcpkgs/libunwind/template
index d4819ce54acd0..ab09553a44075 100644
--- a/srcpkgs/libunwind/template
+++ b/srcpkgs/libunwind/template
@@ -1,7 +1,7 @@
 # Template file for 'libunwind'
 pkgname=libunwind
-version=1.5.0
-revision=3
+version=1.7.2
+revision=1
 build_style=gnu-configure
 hostmakedepends="libtool automake"
 makedepends="liblzma-devel"
@@ -9,8 +9,8 @@ short_desc="Library to determine the call-chain of a program"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="MIT"
 homepage="https://www.nongnu.org/libunwind/"
-distfiles="${NONGNU_SITE}/${pkgname}/${pkgname}-${version/rc/-rc}.tar.gz"
-checksum=90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017
+distfiles="https://github.com/libunwind/libunwind/releases/download/v${version}/libunwind-${version}.tar.gz"
+checksum=a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6
 
 CFLAGS="-fcommon"
 
@@ -30,10 +30,6 @@ case "$XBPS_TARGET_MACHINE" in
 esac
 
 pre_configure() {
-	vsed -i '/SUBDIRS/s/tests//' Makefile.am
-	# libunwind explicitly sets lib64 for ppc64 by default
-	vsed -i '/libdir/s/lib64/lib/' configure.ac
-
 	# unw_getcontext is just getcontext on ppc*, separate lib for musl
 	# it needs to be here because it's used directly in a macro in a
 	# public header, so things using libunwind need linkage against it

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PR PATCH] [Updated] pagesize fixes for compat with rpi5-kernel
       [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
  2024-01-13  9:31 ` [PR PATCH] [Updated] pagesize fixes for compat with rpi5-kernel classabbyamp
@ 2024-01-13  9:35 ` classabbyamp
  2024-01-13  9:38 ` classabbyamp
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: classabbyamp @ 2024-01-13  9:35 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 612 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages rpi5-fixes
https://github.com/void-linux/void-packages/pull/48194

pagesize fixes for compat with rpi5-kernel
various changes based on https://github.com/AsahiLinux/docs/wiki/Broken-Software#broken-packages

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**


A patch file from https://github.com/void-linux/void-packages/pull/48194.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi5-fixes-48194.patch --]
[-- Type: text/x-diff, Size: 22138 bytes --]

From 268ce76b04b1335d370409018e748766d8067d6e Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:54:31 -0500
Subject: [PATCH 1/5] jemalloc: support larger pagesizes

---
 srcpkgs/jemalloc/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/jemalloc/template b/srcpkgs/jemalloc/template
index eb7efd5dfd75d..2ce569289f9f5 100644
--- a/srcpkgs/jemalloc/template
+++ b/srcpkgs/jemalloc/template
@@ -1,9 +1,9 @@
 # Template file for 'jemalloc'
 pkgname=jemalloc
 version=5.2.1
-revision=1
+revision=2
 build_style=gnu-configure
-configure_args="je_cv_static_page_shift=12"
+configure_args="--with-lg-page=16"
 short_desc="General-purpose scalable concurrent malloc(3) implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"

From 5b5c7469032bca38e9f2ee7c0b4b98e517936481 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:55:06 -0500
Subject: [PATCH 2/5] common/build-helper/rust.sh: support larger pagesizes

intentionally not forcing the usage of system jemalloc because it builds
with an unprefixed malloc and thus jemalloc's malloc can unintentionally
be used for linked C libraries
---
 common/build-helper/rust.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/common/build-helper/rust.sh b/common/build-helper/rust.sh
index 460aad6a12e12..22bfd980ba9e3 100644
--- a/common/build-helper/rust.sh
+++ b/common/build-helper/rust.sh
@@ -67,3 +67,6 @@ export RUSTONIG_SYSTEM_LIBONIG=1
 
 # libsqlite3-sys
 export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
+
+# jemalloc-sys
+export JEMALLOC_SYS_WITH_LG_PAGE=16

From 8dad64acf182efb8cee01d3051d0edbab997fab2 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:57:11 -0500
Subject: [PATCH 3/5] fd: rebuild to fix jemalloc on larger pagesizes

---
 srcpkgs/fd/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/fd/template b/srcpkgs/fd/template
index 2bbe7b5dc114c..4630938b1645b 100644
--- a/srcpkgs/fd/template
+++ b/srcpkgs/fd/template
@@ -1,7 +1,7 @@
 # Template file for 'fd'
 pkgname=fd
 version=9.0.0
-revision=1
+revision=2
 build_style=cargo
 build_helper=qemu
 short_desc="Simple, fast and user-friendly alternative to find"

From 43ecf52781f28a2759970fcf9ca1f0747feca013 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 04:30:35 -0500
Subject: [PATCH 4/5] libunwind: update to 1.7.2.

fixes pagesize issues for e.g. rpi5-kernel
---
 srcpkgs/libunwind/patches/ppc32-musl.patch | 198 ---------------------
 srcpkgs/libunwind/template                 |  12 +-
 2 files changed, 4 insertions(+), 206 deletions(-)
 delete mode 100644 srcpkgs/libunwind/patches/ppc32-musl.patch

diff --git a/srcpkgs/libunwind/patches/ppc32-musl.patch b/srcpkgs/libunwind/patches/ppc32-musl.patch
deleted file mode 100644
index dc4e894a6b9da..0000000000000
--- a/srcpkgs/libunwind/patches/ppc32-musl.patch
+++ /dev/null
@@ -1,198 +0,0 @@
---- a/src/ppc32/Ginit.c
-+++ b/src/ppc32/Ginit.c
-@@ -48,12 +48,12 @@ uc_addr (ucontext_t *uc, int reg)
-   void *addr;
- 
-   if ((unsigned) (reg - UNW_PPC32_R0) < 32)
--    addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0];
-+    addr = &UC_REGS(*uc)->gregs[reg - UNW_PPC32_R0];
- 
-   else
-   if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) &&
-        ((unsigned) (reg - UNW_PPC32_F0) >= 0) )
--    addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0];
-+    addr = &UC_REGS(*uc)->fpregs.fpregs[reg - UNW_PPC32_F0];
- 
-   else
-     {
-@@ -76,7 +76,7 @@ uc_addr (ucontext_t *uc, int reg)
-         default:
-           return NULL;
-         }
--      addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx];
-+      addr = &UC_REGS(*uc)->gregs[gregs_idx];
-     }
-   return addr;
- }
---- a/src/ppc32/ucontext_i.h
-+++ b/src/ppc32/ucontext_i.h
-@@ -42,87 +42,93 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
- //#define MQ_IDX                36
- #define LINK_IDX        36
- 
-+#ifdef __GLIBC__
-+#define UC_REGS(uctx) ((uctx).uc_mcontext.uc_regs)
-+#else
-+#define UC_REGS(uctx) ((uctx).uc_regs)
-+#endif
-+
- /* These are dummy structures used only for obtaining the offsets of the
-    various structure members. */
- static ucontext_t dmy_ctxt UNUSED;
- 
--#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[0] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[1] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[2] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[3] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[4] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[5] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[6] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[7] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[8] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[9] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[10] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[11] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[12] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[13] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[14] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[15] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[16] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[17] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[18] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[19] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[20] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[21] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[22] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[23] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[24] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[25] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[26] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[27] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[28] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[29] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[30] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[31] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R0 ((void *)&UC_REGS(dmy_ctxt)->gregs[0] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R1 ((void *)&UC_REGS(dmy_ctxt)->gregs[1] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R2 ((void *)&UC_REGS(dmy_ctxt)->gregs[2] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R3 ((void *)&UC_REGS(dmy_ctxt)->gregs[3] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R4 ((void *)&UC_REGS(dmy_ctxt)->gregs[4] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R5 ((void *)&UC_REGS(dmy_ctxt)->gregs[5] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R6 ((void *)&UC_REGS(dmy_ctxt)->gregs[6] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R7 ((void *)&UC_REGS(dmy_ctxt)->gregs[7] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R8 ((void *)&UC_REGS(dmy_ctxt)->gregs[8] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R9 ((void *)&UC_REGS(dmy_ctxt)->gregs[9] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R10 ((void *)&UC_REGS(dmy_ctxt)->gregs[10] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R11 ((void *)&UC_REGS(dmy_ctxt)->gregs[11] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R12 ((void *)&UC_REGS(dmy_ctxt)->gregs[12] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R13 ((void *)&UC_REGS(dmy_ctxt)->gregs[13] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R14 ((void *)&UC_REGS(dmy_ctxt)->gregs[14] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R15 ((void *)&UC_REGS(dmy_ctxt)->gregs[15] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R16 ((void *)&UC_REGS(dmy_ctxt)->gregs[16] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R17 ((void *)&UC_REGS(dmy_ctxt)->gregs[17] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R18 ((void *)&UC_REGS(dmy_ctxt)->gregs[18] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R19 ((void *)&UC_REGS(dmy_ctxt)->gregs[19] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R20 ((void *)&UC_REGS(dmy_ctxt)->gregs[20] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R21 ((void *)&UC_REGS(dmy_ctxt)->gregs[21] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R22 ((void *)&UC_REGS(dmy_ctxt)->gregs[22] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R23 ((void *)&UC_REGS(dmy_ctxt)->gregs[23] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R24 ((void *)&UC_REGS(dmy_ctxt)->gregs[24] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R25 ((void *)&UC_REGS(dmy_ctxt)->gregs[25] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R26 ((void *)&UC_REGS(dmy_ctxt)->gregs[26] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R27 ((void *)&UC_REGS(dmy_ctxt)->gregs[27] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R28 ((void *)&UC_REGS(dmy_ctxt)->gregs[28] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R29 ((void *)&UC_REGS(dmy_ctxt)->gregs[29] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R30 ((void *)&UC_REGS(dmy_ctxt)->gregs[30] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R31 ((void *)&UC_REGS(dmy_ctxt)->gregs[31] - (void *)&dmy_ctxt)
- 
--#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[MSR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CTR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[LINK_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[XER_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CCR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DAR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_MSR ((void *)&UC_REGS(dmy_ctxt)->gregs[MSR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&UC_REGS(dmy_ctxt)->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_CTR ((void *)&UC_REGS(dmy_ctxt)->gregs[CTR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_LINK ((void *)&UC_REGS(dmy_ctxt)->gregs[LINK_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_XER ((void *)&UC_REGS(dmy_ctxt)->gregs[XER_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_CCR ((void *)&UC_REGS(dmy_ctxt)->gregs[CCR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_SOFTE ((void *)&UC_REGS(dmy_ctxt)->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_TRAP ((void *)&UC_REGS(dmy_ctxt)->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_DAR ((void *)&UC_REGS(dmy_ctxt)->gregs[DAR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_DSISR ((void *)&UC_REGS(dmy_ctxt)->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_RESULT ((void *)&UC_REGS(dmy_ctxt)->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
- 
--#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[0] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[1] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[2] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[3] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[4] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[5] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[6] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[7] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[8] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[9] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[10] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[11] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[12] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[13] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[14] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[15] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[16] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[17] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[18] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[19] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[20] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[21] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[22] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[23] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[24] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[25] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[26] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[27] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[28] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[29] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[30] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[31] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[32] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R0 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[0] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R1 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[1] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R2 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[2] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R3 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[3] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R4 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[4] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R5 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[5] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R6 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[6] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R7 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[7] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R8 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[8] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R9 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[9] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R10 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[10] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R11 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[11] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R12 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[12] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R13 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[13] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R14 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[14] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R15 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[15] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R16 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[16] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R17 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[17] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R18 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[18] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R19 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[19] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R20 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[20] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R21 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[21] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R22 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[22] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R23 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[23] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R24 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[24] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R25 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[25] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R26 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[26] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R27 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[27] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R28 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[28] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R29 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[29] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R30 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[30] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R31 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[31] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_FPSCR ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[32] - (void *)&dmy_ctxt)
- 
- #endif
diff --git a/srcpkgs/libunwind/template b/srcpkgs/libunwind/template
index d4819ce54acd0..ab09553a44075 100644
--- a/srcpkgs/libunwind/template
+++ b/srcpkgs/libunwind/template
@@ -1,7 +1,7 @@
 # Template file for 'libunwind'
 pkgname=libunwind
-version=1.5.0
-revision=3
+version=1.7.2
+revision=1
 build_style=gnu-configure
 hostmakedepends="libtool automake"
 makedepends="liblzma-devel"
@@ -9,8 +9,8 @@ short_desc="Library to determine the call-chain of a program"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="MIT"
 homepage="https://www.nongnu.org/libunwind/"
-distfiles="${NONGNU_SITE}/${pkgname}/${pkgname}-${version/rc/-rc}.tar.gz"
-checksum=90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017
+distfiles="https://github.com/libunwind/libunwind/releases/download/v${version}/libunwind-${version}.tar.gz"
+checksum=a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6
 
 CFLAGS="-fcommon"
 
@@ -30,10 +30,6 @@ case "$XBPS_TARGET_MACHINE" in
 esac
 
 pre_configure() {
-	vsed -i '/SUBDIRS/s/tests//' Makefile.am
-	# libunwind explicitly sets lib64 for ppc64 by default
-	vsed -i '/libdir/s/lib64/lib/' configure.ac
-
 	# unw_getcontext is just getcontext on ppc*, separate lib for musl
 	# it needs to be here because it's used directly in a macro in a
 	# public header, so things using libunwind need linkage against it

From 3720636281c594c2cbf521ced2da53abb449922e Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 04:34:04 -0500
Subject: [PATCH 5/5] rust: support larger pagesizes with jemalloc

---
 srcpkgs/rust/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/rust/template b/srcpkgs/rust/template
index 42ff348004186..d33e713857ad3 100644
--- a/srcpkgs/rust/template
+++ b/srcpkgs/rust/template
@@ -9,7 +9,7 @@
 #
 pkgname=rust
 version=1.75.0
-revision=1
+revision=2
 hostmakedepends="curl pkg-config python3 tar cargo-bootstrap"
 makedepends="libffi-devel ncurses-devel libxml2-devel zlib-devel llvm15"
 depends="rust-std gcc"
@@ -153,6 +153,7 @@ do_configure() {
 # of the cross host.
 do_build() {
 	export RUST_BACKTRACE=1
+	export JEMALLOC_SYS_WITH_LG_PAGE=16
 	export CARGO_HOME="$wrksrc/.cargo"
 	export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
 	# prevent sysroot from leaking in

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: pagesize fixes for compat with rpi5-kernel
       [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
  2024-01-13  9:31 ` [PR PATCH] [Updated] pagesize fixes for compat with rpi5-kernel classabbyamp
  2024-01-13  9:35 ` classabbyamp
@ 2024-01-13  9:38 ` classabbyamp
  2024-01-13  9:48 ` [PR PATCH] [Updated] " classabbyamp
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: classabbyamp @ 2024-01-13  9:38 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 296 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/48194#issuecomment-1890396079

Comment:
at _minimum_, TODO:

- [ ] qt5-webengine
- [ ] qt6-webengine (pdf)
- [ ] redis?
- [ ] other rust jemalloc consumers (get them as they are found)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PR PATCH] [Updated] pagesize fixes for compat with rpi5-kernel
       [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
                   ` (2 preceding siblings ...)
  2024-01-13  9:38 ` classabbyamp
@ 2024-01-13  9:48 ` classabbyamp
  2024-01-13  9:55 ` 0x5c
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: classabbyamp @ 2024-01-13  9:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 612 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages rpi5-fixes
https://github.com/void-linux/void-packages/pull/48194

pagesize fixes for compat with rpi5-kernel
various changes based on https://github.com/AsahiLinux/docs/wiki/Broken-Software#broken-packages

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**


A patch file from https://github.com/void-linux/void-packages/pull/48194.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi5-fixes-48194.patch --]
[-- Type: text/x-diff, Size: 22524 bytes --]

From 82ecb64d2a4d858908dff95bd2280f482d7bb542 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:54:31 -0500
Subject: [PATCH 1/5] jemalloc: support larger pagesizes

---
 srcpkgs/jemalloc/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/jemalloc/template b/srcpkgs/jemalloc/template
index eb7efd5dfd75d..66c857db0e7d9 100644
--- a/srcpkgs/jemalloc/template
+++ b/srcpkgs/jemalloc/template
@@ -1,14 +1,14 @@
 # Template file for 'jemalloc'
 pkgname=jemalloc
 version=5.2.1
-revision=1
+revision=2
 build_style=gnu-configure
-configure_args="je_cv_static_page_shift=12"
+configure_args="--with-lg-page=16"
 short_desc="General-purpose scalable concurrent malloc(3) implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="http://jemalloc.net/"
-#changelog="https://raw.githubusercontent.com/jemalloc/jemalloc/master/ChangeLog"
+changelog="https://raw.githubusercontent.com/jemalloc/jemalloc/master/ChangeLog"
 distfiles="https://github.com/jemalloc/jemalloc/releases/download/${version}/jemalloc-${version}.tar.bz2"
 checksum=34330e5ce276099e2e8950d9335db5a875689a4c6a56751ef3b1d8c537f887f6
 

From 9c512cbb568913516898eb00102b893bf95c3a30 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:55:06 -0500
Subject: [PATCH 2/5] common/build-helper/rust.sh: support larger pagesizes

intentionally not forcing the usage of system jemalloc because it builds
with an unprefixed malloc and thus jemalloc's malloc can unintentionally
be used for linked C libraries
---
 common/build-helper/rust.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/common/build-helper/rust.sh b/common/build-helper/rust.sh
index 460aad6a12e12..22bfd980ba9e3 100644
--- a/common/build-helper/rust.sh
+++ b/common/build-helper/rust.sh
@@ -67,3 +67,6 @@ export RUSTONIG_SYSTEM_LIBONIG=1
 
 # libsqlite3-sys
 export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
+
+# jemalloc-sys
+export JEMALLOC_SYS_WITH_LG_PAGE=16

From be3c29d99b7def05123e4f79d2ae22bdc095e3a7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:57:11 -0500
Subject: [PATCH 3/5] fd: rebuild to fix jemalloc on larger pagesizes

---
 srcpkgs/fd/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/fd/template b/srcpkgs/fd/template
index 2bbe7b5dc114c..4630938b1645b 100644
--- a/srcpkgs/fd/template
+++ b/srcpkgs/fd/template
@@ -1,7 +1,7 @@
 # Template file for 'fd'
 pkgname=fd
 version=9.0.0
-revision=1
+revision=2
 build_style=cargo
 build_helper=qemu
 short_desc="Simple, fast and user-friendly alternative to find"

From 899b36104c889333ee2c1bd2ea40c2922497bbde Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 04:30:35 -0500
Subject: [PATCH 4/5] libunwind: update to 1.7.2.

fixes pagesize issues for e.g. rpi5-kernel
---
 srcpkgs/libunwind/patches/ppc32-musl.patch | 198 ---------------------
 srcpkgs/libunwind/template                 |  12 +-
 2 files changed, 4 insertions(+), 206 deletions(-)
 delete mode 100644 srcpkgs/libunwind/patches/ppc32-musl.patch

diff --git a/srcpkgs/libunwind/patches/ppc32-musl.patch b/srcpkgs/libunwind/patches/ppc32-musl.patch
deleted file mode 100644
index dc4e894a6b9da..0000000000000
--- a/srcpkgs/libunwind/patches/ppc32-musl.patch
+++ /dev/null
@@ -1,198 +0,0 @@
---- a/src/ppc32/Ginit.c
-+++ b/src/ppc32/Ginit.c
-@@ -48,12 +48,12 @@ uc_addr (ucontext_t *uc, int reg)
-   void *addr;
- 
-   if ((unsigned) (reg - UNW_PPC32_R0) < 32)
--    addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0];
-+    addr = &UC_REGS(*uc)->gregs[reg - UNW_PPC32_R0];
- 
-   else
-   if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) &&
-        ((unsigned) (reg - UNW_PPC32_F0) >= 0) )
--    addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0];
-+    addr = &UC_REGS(*uc)->fpregs.fpregs[reg - UNW_PPC32_F0];
- 
-   else
-     {
-@@ -76,7 +76,7 @@ uc_addr (ucontext_t *uc, int reg)
-         default:
-           return NULL;
-         }
--      addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx];
-+      addr = &UC_REGS(*uc)->gregs[gregs_idx];
-     }
-   return addr;
- }
---- a/src/ppc32/ucontext_i.h
-+++ b/src/ppc32/ucontext_i.h
-@@ -42,87 +42,93 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
- //#define MQ_IDX                36
- #define LINK_IDX        36
- 
-+#ifdef __GLIBC__
-+#define UC_REGS(uctx) ((uctx).uc_mcontext.uc_regs)
-+#else
-+#define UC_REGS(uctx) ((uctx).uc_regs)
-+#endif
-+
- /* These are dummy structures used only for obtaining the offsets of the
-    various structure members. */
- static ucontext_t dmy_ctxt UNUSED;
- 
--#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[0] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[1] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[2] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[3] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[4] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[5] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[6] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[7] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[8] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[9] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[10] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[11] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[12] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[13] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[14] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[15] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[16] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[17] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[18] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[19] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[20] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[21] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[22] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[23] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[24] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[25] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[26] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[27] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[28] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[29] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[30] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[31] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R0 ((void *)&UC_REGS(dmy_ctxt)->gregs[0] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R1 ((void *)&UC_REGS(dmy_ctxt)->gregs[1] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R2 ((void *)&UC_REGS(dmy_ctxt)->gregs[2] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R3 ((void *)&UC_REGS(dmy_ctxt)->gregs[3] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R4 ((void *)&UC_REGS(dmy_ctxt)->gregs[4] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R5 ((void *)&UC_REGS(dmy_ctxt)->gregs[5] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R6 ((void *)&UC_REGS(dmy_ctxt)->gregs[6] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R7 ((void *)&UC_REGS(dmy_ctxt)->gregs[7] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R8 ((void *)&UC_REGS(dmy_ctxt)->gregs[8] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R9 ((void *)&UC_REGS(dmy_ctxt)->gregs[9] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R10 ((void *)&UC_REGS(dmy_ctxt)->gregs[10] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R11 ((void *)&UC_REGS(dmy_ctxt)->gregs[11] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R12 ((void *)&UC_REGS(dmy_ctxt)->gregs[12] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R13 ((void *)&UC_REGS(dmy_ctxt)->gregs[13] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R14 ((void *)&UC_REGS(dmy_ctxt)->gregs[14] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R15 ((void *)&UC_REGS(dmy_ctxt)->gregs[15] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R16 ((void *)&UC_REGS(dmy_ctxt)->gregs[16] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R17 ((void *)&UC_REGS(dmy_ctxt)->gregs[17] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R18 ((void *)&UC_REGS(dmy_ctxt)->gregs[18] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R19 ((void *)&UC_REGS(dmy_ctxt)->gregs[19] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R20 ((void *)&UC_REGS(dmy_ctxt)->gregs[20] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R21 ((void *)&UC_REGS(dmy_ctxt)->gregs[21] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R22 ((void *)&UC_REGS(dmy_ctxt)->gregs[22] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R23 ((void *)&UC_REGS(dmy_ctxt)->gregs[23] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R24 ((void *)&UC_REGS(dmy_ctxt)->gregs[24] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R25 ((void *)&UC_REGS(dmy_ctxt)->gregs[25] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R26 ((void *)&UC_REGS(dmy_ctxt)->gregs[26] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R27 ((void *)&UC_REGS(dmy_ctxt)->gregs[27] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R28 ((void *)&UC_REGS(dmy_ctxt)->gregs[28] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R29 ((void *)&UC_REGS(dmy_ctxt)->gregs[29] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R30 ((void *)&UC_REGS(dmy_ctxt)->gregs[30] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R31 ((void *)&UC_REGS(dmy_ctxt)->gregs[31] - (void *)&dmy_ctxt)
- 
--#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[MSR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CTR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[LINK_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[XER_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CCR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DAR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_MSR ((void *)&UC_REGS(dmy_ctxt)->gregs[MSR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&UC_REGS(dmy_ctxt)->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_CTR ((void *)&UC_REGS(dmy_ctxt)->gregs[CTR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_LINK ((void *)&UC_REGS(dmy_ctxt)->gregs[LINK_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_XER ((void *)&UC_REGS(dmy_ctxt)->gregs[XER_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_CCR ((void *)&UC_REGS(dmy_ctxt)->gregs[CCR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_SOFTE ((void *)&UC_REGS(dmy_ctxt)->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_TRAP ((void *)&UC_REGS(dmy_ctxt)->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_DAR ((void *)&UC_REGS(dmy_ctxt)->gregs[DAR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_DSISR ((void *)&UC_REGS(dmy_ctxt)->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_RESULT ((void *)&UC_REGS(dmy_ctxt)->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
- 
--#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[0] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[1] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[2] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[3] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[4] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[5] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[6] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[7] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[8] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[9] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[10] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[11] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[12] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[13] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[14] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[15] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[16] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[17] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[18] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[19] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[20] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[21] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[22] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[23] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[24] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[25] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[26] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[27] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[28] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[29] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[30] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[31] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[32] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R0 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[0] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R1 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[1] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R2 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[2] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R3 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[3] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R4 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[4] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R5 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[5] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R6 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[6] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R7 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[7] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R8 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[8] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R9 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[9] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R10 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[10] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R11 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[11] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R12 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[12] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R13 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[13] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R14 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[14] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R15 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[15] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R16 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[16] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R17 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[17] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R18 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[18] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R19 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[19] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R20 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[20] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R21 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[21] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R22 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[22] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R23 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[23] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R24 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[24] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R25 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[25] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R26 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[26] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R27 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[27] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R28 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[28] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R29 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[29] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R30 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[30] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R31 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[31] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_FPSCR ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[32] - (void *)&dmy_ctxt)
- 
- #endif
diff --git a/srcpkgs/libunwind/template b/srcpkgs/libunwind/template
index d4819ce54acd0..ab09553a44075 100644
--- a/srcpkgs/libunwind/template
+++ b/srcpkgs/libunwind/template
@@ -1,7 +1,7 @@
 # Template file for 'libunwind'
 pkgname=libunwind
-version=1.5.0
-revision=3
+version=1.7.2
+revision=1
 build_style=gnu-configure
 hostmakedepends="libtool automake"
 makedepends="liblzma-devel"
@@ -9,8 +9,8 @@ short_desc="Library to determine the call-chain of a program"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="MIT"
 homepage="https://www.nongnu.org/libunwind/"
-distfiles="${NONGNU_SITE}/${pkgname}/${pkgname}-${version/rc/-rc}.tar.gz"
-checksum=90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017
+distfiles="https://github.com/libunwind/libunwind/releases/download/v${version}/libunwind-${version}.tar.gz"
+checksum=a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6
 
 CFLAGS="-fcommon"
 
@@ -30,10 +30,6 @@ case "$XBPS_TARGET_MACHINE" in
 esac
 
 pre_configure() {
-	vsed -i '/SUBDIRS/s/tests//' Makefile.am
-	# libunwind explicitly sets lib64 for ppc64 by default
-	vsed -i '/libdir/s/lib64/lib/' configure.ac
-
 	# unw_getcontext is just getcontext on ppc*, separate lib for musl
 	# it needs to be here because it's used directly in a macro in a
 	# public header, so things using libunwind need linkage against it

From 633a811d6c872375922f0985a268fcb52da956f9 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 04:34:04 -0500
Subject: [PATCH 5/5] rust: support larger pagesizes with jemalloc

---
 srcpkgs/rust/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/rust/template b/srcpkgs/rust/template
index 42ff348004186..d33e713857ad3 100644
--- a/srcpkgs/rust/template
+++ b/srcpkgs/rust/template
@@ -9,7 +9,7 @@
 #
 pkgname=rust
 version=1.75.0
-revision=1
+revision=2
 hostmakedepends="curl pkg-config python3 tar cargo-bootstrap"
 makedepends="libffi-devel ncurses-devel libxml2-devel zlib-devel llvm15"
 depends="rust-std gcc"
@@ -153,6 +153,7 @@ do_configure() {
 # of the cross host.
 do_build() {
 	export RUST_BACKTRACE=1
+	export JEMALLOC_SYS_WITH_LG_PAGE=16
 	export CARGO_HOME="$wrksrc/.cargo"
 	export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
 	# prevent sysroot from leaking in

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: pagesize fixes for compat with rpi5-kernel
       [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
                   ` (3 preceding siblings ...)
  2024-01-13  9:48 ` [PR PATCH] [Updated] " classabbyamp
@ 2024-01-13  9:55 ` 0x5c
  2024-01-13  9:57 ` classabbyamp
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 8+ messages in thread
From: 0x5c @ 2024-01-13  9:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 270 bytes --]

New comment by 0x5c on void-packages repository

https://github.com/void-linux/void-packages/pull/48194#issuecomment-1890399399

Comment:
> [ ] redis?

Redis is just the jemalloc error on start; installing the fixed jemalloc without bumping redis allows it to start


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: pagesize fixes for compat with rpi5-kernel
       [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
                   ` (4 preceding siblings ...)
  2024-01-13  9:55 ` 0x5c
@ 2024-01-13  9:57 ` classabbyamp
  2024-01-17 20:26 ` [PR PATCH] [Updated] " classabbyamp
  2024-01-18  3:11 ` [PR PATCH] [Merged]: " classabbyamp
  7 siblings, 0 replies; 8+ messages in thread
From: classabbyamp @ 2024-01-13  9:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 296 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/48194#issuecomment-1890396079

Comment:
at _minimum_, TODO:

- [ ] qt5-webengine
- [ ] qt6-webengine (pdf)
- [x] redis?
- [ ] other rust jemalloc consumers (get them as they are found)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PR PATCH] [Updated] pagesize fixes for compat with rpi5-kernel
       [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
                   ` (5 preceding siblings ...)
  2024-01-13  9:57 ` classabbyamp
@ 2024-01-17 20:26 ` classabbyamp
  2024-01-18  3:11 ` [PR PATCH] [Merged]: " classabbyamp
  7 siblings, 0 replies; 8+ messages in thread
From: classabbyamp @ 2024-01-17 20:26 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 612 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages rpi5-fixes
https://github.com/void-linux/void-packages/pull/48194

pagesize fixes for compat with rpi5-kernel
various changes based on https://github.com/AsahiLinux/docs/wiki/Broken-Software#broken-packages

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**


A patch file from https://github.com/void-linux/void-packages/pull/48194.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-rpi5-fixes-48194.patch --]
[-- Type: text/x-diff, Size: 23617 bytes --]

From e102c2228f7c76f9914dee60ce8878df2c63f9ba Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:54:31 -0500
Subject: [PATCH 1/6] jemalloc: support larger pagesizes

---
 srcpkgs/jemalloc/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/jemalloc/template b/srcpkgs/jemalloc/template
index eb7efd5dfd75d..66c857db0e7d9 100644
--- a/srcpkgs/jemalloc/template
+++ b/srcpkgs/jemalloc/template
@@ -1,14 +1,14 @@
 # Template file for 'jemalloc'
 pkgname=jemalloc
 version=5.2.1
-revision=1
+revision=2
 build_style=gnu-configure
-configure_args="je_cv_static_page_shift=12"
+configure_args="--with-lg-page=16"
 short_desc="General-purpose scalable concurrent malloc(3) implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="http://jemalloc.net/"
-#changelog="https://raw.githubusercontent.com/jemalloc/jemalloc/master/ChangeLog"
+changelog="https://raw.githubusercontent.com/jemalloc/jemalloc/master/ChangeLog"
 distfiles="https://github.com/jemalloc/jemalloc/releases/download/${version}/jemalloc-${version}.tar.bz2"
 checksum=34330e5ce276099e2e8950d9335db5a875689a4c6a56751ef3b1d8c537f887f6
 

From 60abd25b2ddd02b5ebf84d5cec13fa3fcbb7851c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:55:06 -0500
Subject: [PATCH 2/6] common/build-helper/rust.sh: support larger pagesizes

intentionally not forcing the usage of system jemalloc because it builds
with an unprefixed malloc and thus jemalloc's malloc can unintentionally
be used for linked C libraries
---
 common/build-helper/rust.sh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/common/build-helper/rust.sh b/common/build-helper/rust.sh
index 460aad6a12e12..22bfd980ba9e3 100644
--- a/common/build-helper/rust.sh
+++ b/common/build-helper/rust.sh
@@ -67,3 +67,6 @@ export RUSTONIG_SYSTEM_LIBONIG=1
 
 # libsqlite3-sys
 export LIBSQLITE3_SYS_USE_PKG_CONFIG=1
+
+# jemalloc-sys
+export JEMALLOC_SYS_WITH_LG_PAGE=16

From 8b1271dc6250617c6c7f047cb0bbe7ab0cbd406b Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 03:57:11 -0500
Subject: [PATCH 3/6] fd: rebuild to fix jemalloc on larger pagesizes

---
 srcpkgs/fd/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/fd/template b/srcpkgs/fd/template
index 2bbe7b5dc114c..4630938b1645b 100644
--- a/srcpkgs/fd/template
+++ b/srcpkgs/fd/template
@@ -1,7 +1,7 @@
 # Template file for 'fd'
 pkgname=fd
 version=9.0.0
-revision=1
+revision=2
 build_style=cargo
 build_helper=qemu
 short_desc="Simple, fast and user-friendly alternative to find"

From 112f61f4d4017956721ac30b386e64bc125471de Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 04:30:35 -0500
Subject: [PATCH 4/6] libunwind: update to 1.7.2.

fixes pagesize issues for e.g. rpi5-kernel
---
 srcpkgs/libunwind/patches/ppc32-musl.patch | 198 ---------------------
 srcpkgs/libunwind/template                 |  12 +-
 2 files changed, 4 insertions(+), 206 deletions(-)
 delete mode 100644 srcpkgs/libunwind/patches/ppc32-musl.patch

diff --git a/srcpkgs/libunwind/patches/ppc32-musl.patch b/srcpkgs/libunwind/patches/ppc32-musl.patch
deleted file mode 100644
index dc4e894a6b9da..0000000000000
--- a/srcpkgs/libunwind/patches/ppc32-musl.patch
+++ /dev/null
@@ -1,198 +0,0 @@
---- a/src/ppc32/Ginit.c
-+++ b/src/ppc32/Ginit.c
-@@ -48,12 +48,12 @@ uc_addr (ucontext_t *uc, int reg)
-   void *addr;
- 
-   if ((unsigned) (reg - UNW_PPC32_R0) < 32)
--    addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0];
-+    addr = &UC_REGS(*uc)->gregs[reg - UNW_PPC32_R0];
- 
-   else
-   if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) &&
-        ((unsigned) (reg - UNW_PPC32_F0) >= 0) )
--    addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0];
-+    addr = &UC_REGS(*uc)->fpregs.fpregs[reg - UNW_PPC32_F0];
- 
-   else
-     {
-@@ -76,7 +76,7 @@ uc_addr (ucontext_t *uc, int reg)
-         default:
-           return NULL;
-         }
--      addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx];
-+      addr = &UC_REGS(*uc)->gregs[gregs_idx];
-     }
-   return addr;
- }
---- a/src/ppc32/ucontext_i.h
-+++ b/src/ppc32/ucontext_i.h
-@@ -42,87 +42,93 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
- //#define MQ_IDX                36
- #define LINK_IDX        36
- 
-+#ifdef __GLIBC__
-+#define UC_REGS(uctx) ((uctx).uc_mcontext.uc_regs)
-+#else
-+#define UC_REGS(uctx) ((uctx).uc_regs)
-+#endif
-+
- /* These are dummy structures used only for obtaining the offsets of the
-    various structure members. */
- static ucontext_t dmy_ctxt UNUSED;
- 
--#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[0] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[1] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[2] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[3] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[4] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[5] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[6] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[7] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[8] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[9] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[10] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[11] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[12] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[13] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[14] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[15] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[16] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[17] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[18] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[19] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[20] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[21] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[22] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[23] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[24] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[25] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[26] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[27] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[28] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[29] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[30] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[31] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R0 ((void *)&UC_REGS(dmy_ctxt)->gregs[0] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R1 ((void *)&UC_REGS(dmy_ctxt)->gregs[1] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R2 ((void *)&UC_REGS(dmy_ctxt)->gregs[2] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R3 ((void *)&UC_REGS(dmy_ctxt)->gregs[3] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R4 ((void *)&UC_REGS(dmy_ctxt)->gregs[4] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R5 ((void *)&UC_REGS(dmy_ctxt)->gregs[5] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R6 ((void *)&UC_REGS(dmy_ctxt)->gregs[6] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R7 ((void *)&UC_REGS(dmy_ctxt)->gregs[7] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R8 ((void *)&UC_REGS(dmy_ctxt)->gregs[8] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R9 ((void *)&UC_REGS(dmy_ctxt)->gregs[9] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R10 ((void *)&UC_REGS(dmy_ctxt)->gregs[10] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R11 ((void *)&UC_REGS(dmy_ctxt)->gregs[11] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R12 ((void *)&UC_REGS(dmy_ctxt)->gregs[12] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R13 ((void *)&UC_REGS(dmy_ctxt)->gregs[13] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R14 ((void *)&UC_REGS(dmy_ctxt)->gregs[14] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R15 ((void *)&UC_REGS(dmy_ctxt)->gregs[15] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R16 ((void *)&UC_REGS(dmy_ctxt)->gregs[16] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R17 ((void *)&UC_REGS(dmy_ctxt)->gregs[17] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R18 ((void *)&UC_REGS(dmy_ctxt)->gregs[18] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R19 ((void *)&UC_REGS(dmy_ctxt)->gregs[19] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R20 ((void *)&UC_REGS(dmy_ctxt)->gregs[20] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R21 ((void *)&UC_REGS(dmy_ctxt)->gregs[21] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R22 ((void *)&UC_REGS(dmy_ctxt)->gregs[22] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R23 ((void *)&UC_REGS(dmy_ctxt)->gregs[23] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R24 ((void *)&UC_REGS(dmy_ctxt)->gregs[24] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R25 ((void *)&UC_REGS(dmy_ctxt)->gregs[25] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R26 ((void *)&UC_REGS(dmy_ctxt)->gregs[26] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R27 ((void *)&UC_REGS(dmy_ctxt)->gregs[27] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R28 ((void *)&UC_REGS(dmy_ctxt)->gregs[28] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R29 ((void *)&UC_REGS(dmy_ctxt)->gregs[29] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R30 ((void *)&UC_REGS(dmy_ctxt)->gregs[30] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_R31 ((void *)&UC_REGS(dmy_ctxt)->gregs[31] - (void *)&dmy_ctxt)
- 
--#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[MSR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CTR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[LINK_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[XER_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CCR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DAR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_MSR ((void *)&UC_REGS(dmy_ctxt)->gregs[MSR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&UC_REGS(dmy_ctxt)->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_CTR ((void *)&UC_REGS(dmy_ctxt)->gregs[CTR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_LINK ((void *)&UC_REGS(dmy_ctxt)->gregs[LINK_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_XER ((void *)&UC_REGS(dmy_ctxt)->gregs[XER_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_CCR ((void *)&UC_REGS(dmy_ctxt)->gregs[CCR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_SOFTE ((void *)&UC_REGS(dmy_ctxt)->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_TRAP ((void *)&UC_REGS(dmy_ctxt)->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_DAR ((void *)&UC_REGS(dmy_ctxt)->gregs[DAR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_DSISR ((void *)&UC_REGS(dmy_ctxt)->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_GREGS_RESULT ((void *)&UC_REGS(dmy_ctxt)->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
- 
--#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[0] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[1] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[2] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[3] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[4] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[5] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[6] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[7] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[8] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[9] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[10] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[11] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[12] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[13] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[14] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[15] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[16] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[17] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[18] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[19] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[20] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[21] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[22] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[23] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[24] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[25] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[26] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[27] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[28] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[29] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[30] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[31] - (void *)&dmy_ctxt)
--#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[32] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R0 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[0] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R1 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[1] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R2 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[2] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R3 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[3] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R4 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[4] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R5 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[5] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R6 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[6] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R7 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[7] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R8 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[8] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R9 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[9] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R10 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[10] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R11 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[11] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R12 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[12] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R13 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[13] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R14 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[14] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R15 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[15] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R16 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[16] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R17 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[17] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R18 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[18] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R19 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[19] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R20 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[20] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R21 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[21] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R22 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[22] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R23 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[23] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R24 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[24] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R25 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[25] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R26 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[26] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R27 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[27] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R28 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[28] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R29 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[29] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R30 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[30] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_R31 ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[31] - (void *)&dmy_ctxt)
-+#define UC_MCONTEXT_FREGS_FPSCR ((void *)&UC_REGS(dmy_ctxt)->fpregs.fpregs[32] - (void *)&dmy_ctxt)
- 
- #endif
diff --git a/srcpkgs/libunwind/template b/srcpkgs/libunwind/template
index d4819ce54acd0..ab09553a44075 100644
--- a/srcpkgs/libunwind/template
+++ b/srcpkgs/libunwind/template
@@ -1,7 +1,7 @@
 # Template file for 'libunwind'
 pkgname=libunwind
-version=1.5.0
-revision=3
+version=1.7.2
+revision=1
 build_style=gnu-configure
 hostmakedepends="libtool automake"
 makedepends="liblzma-devel"
@@ -9,8 +9,8 @@ short_desc="Library to determine the call-chain of a program"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="MIT"
 homepage="https://www.nongnu.org/libunwind/"
-distfiles="${NONGNU_SITE}/${pkgname}/${pkgname}-${version/rc/-rc}.tar.gz"
-checksum=90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017
+distfiles="https://github.com/libunwind/libunwind/releases/download/v${version}/libunwind-${version}.tar.gz"
+checksum=a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6
 
 CFLAGS="-fcommon"
 
@@ -30,10 +30,6 @@ case "$XBPS_TARGET_MACHINE" in
 esac
 
 pre_configure() {
-	vsed -i '/SUBDIRS/s/tests//' Makefile.am
-	# libunwind explicitly sets lib64 for ppc64 by default
-	vsed -i '/libdir/s/lib64/lib/' configure.ac
-
 	# unw_getcontext is just getcontext on ppc*, separate lib for musl
 	# it needs to be here because it's used directly in a macro in a
 	# public header, so things using libunwind need linkage against it

From a036c82376efbfdaf613b889bfc47c6c35c9e3cf Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 13 Jan 2024 04:34:04 -0500
Subject: [PATCH 5/6] rust: support larger pagesizes with jemalloc

---
 srcpkgs/rust/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/rust/template b/srcpkgs/rust/template
index 42ff348004186..d33e713857ad3 100644
--- a/srcpkgs/rust/template
+++ b/srcpkgs/rust/template
@@ -9,7 +9,7 @@
 #
 pkgname=rust
 version=1.75.0
-revision=1
+revision=2
 hostmakedepends="curl pkg-config python3 tar cargo-bootstrap"
 makedepends="libffi-devel ncurses-devel libxml2-devel zlib-devel llvm15"
 depends="rust-std gcc"
@@ -153,6 +153,7 @@ do_configure() {
 # of the cross host.
 do_build() {
 	export RUST_BACKTRACE=1
+	export JEMALLOC_SYS_WITH_LG_PAGE=16
 	export CARGO_HOME="$wrksrc/.cargo"
 	export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
 	# prevent sysroot from leaking in

From 55d2be342c1ef87075ee6fda7d343bc43de7221a Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Wed, 17 Jan 2024 15:26:00 -0500
Subject: [PATCH 6/6] fixup! libunwind: update to 1.7.2.

---
 srcpkgs/libunwind/template | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/srcpkgs/libunwind/template b/srcpkgs/libunwind/template
index ab09553a44075..9eaa45a549714 100644
--- a/srcpkgs/libunwind/template
+++ b/srcpkgs/libunwind/template
@@ -11,6 +11,8 @@ license="MIT"
 homepage="https://www.nongnu.org/libunwind/"
 distfiles="https://github.com/libunwind/libunwind/releases/download/v${version}/libunwind-${version}.tar.gz"
 checksum=a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6
+# many test failures
+make_check=no
 
 CFLAGS="-fcommon"
 
@@ -29,6 +31,10 @@ case "$XBPS_TARGET_MACHINE" in
 	*) ;;
 esac
 
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+	checkdepends+=" libexecinfo-devel"
+fi
+
 pre_configure() {
 	# unw_getcontext is just getcontext on ppc*, separate lib for musl
 	# it needs to be here because it's used directly in a macro in a

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PR PATCH] [Merged]: pagesize fixes for compat with rpi5-kernel
       [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
                   ` (6 preceding siblings ...)
  2024-01-17 20:26 ` [PR PATCH] [Updated] " classabbyamp
@ 2024-01-18  3:11 ` classabbyamp
  7 siblings, 0 replies; 8+ messages in thread
From: classabbyamp @ 2024-01-18  3:11 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 443 bytes --]

There's a merged pull request on the void-packages repository

pagesize fixes for compat with rpi5-kernel
https://github.com/void-linux/void-packages/pull/48194

Description:
various changes based on https://github.com/AsahiLinux/docs/wiki/Broken-Software#broken-packages

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-01-18  3:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-48194@inbox.vuxu.org>
2024-01-13  9:31 ` [PR PATCH] [Updated] pagesize fixes for compat with rpi5-kernel classabbyamp
2024-01-13  9:35 ` classabbyamp
2024-01-13  9:38 ` classabbyamp
2024-01-13  9:48 ` [PR PATCH] [Updated] " classabbyamp
2024-01-13  9:55 ` 0x5c
2024-01-13  9:57 ` classabbyamp
2024-01-17 20:26 ` [PR PATCH] [Updated] " classabbyamp
2024-01-18  3:11 ` [PR PATCH] [Merged]: " classabbyamp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).