Re: git: ee491a6c691b - main - devel/libunwind: Update to 1.7.2

From: Daniel Engberg <daniel.engberg.lists_at_pyret.net>
Date: Thu, 02 Nov 2023 19:12:11 UTC
On 2023-11-01T06:30:36.000+01:00, Po-Chuan Hsieh <sunpoet@FreeBSD.org>
wrote:

> The branch main has been updated by sunpoet:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=ee491a6c691b15e6a3313fe8d73cfb2b2ed06e83
> 
> commit ee491a6c691b15e6a3313fe8d73cfb2b2ed06e83
> 
> Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
> 
> AuthorDate: 2023-11-01 05:30:07 +0000
> 
> Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
> 
> CommitDate: 2023-11-01 05:30:07 +0000
> 
>     devel/libunwind: Update to 1.7.2
> 
>     
> 
>     - Change MASTER_SITES
> 
>     - Update WWW
> 
>     - Sort PLIST
> 
>     
> 
>     Changes:        https://github.com/libunwind/libunwind/releases
> 
>     PR:             274523
> 
>     Exp-run by:     antoine
> 
> ---
> 
>  devel/libunwind/Makefile               |  16 +-
> 
>  devel/libunwind/distinfo               |   8 +-
> 
>  devel/libunwind/files/patch-aarch64    |  64 -------
> 
>  devel/libunwind/files/patch-bug-269875 | 310 ---------------------------------
> 
>  devel/libunwind/files/patch-i386       |  13 ++
> 
>  devel/libunwind/pkg-plist              |  12 +-
> 
>  6 files changed, 30 insertions(+), 393 deletions(-)
> 
> diff --git a/devel/libunwind/Makefile b/devel/libunwind/Makefile
> 
> index 77af7ab31c2e..72927e2d1d9f 100644
> 
> --- a/devel/libunwind/Makefile
> 
> +++ b/devel/libunwind/Makefile
> 
> @@ -1,17 +1,13 @@
> 
>  PORTNAME=    libunwind
> 
> -PORTVERSION=    20211201    # This is the release date on https://download.savannah.gnu.org/releases/libunwind/
> 
> -PORTREVISION=    2
> 
> +PORTVERSION=    20230730    # This is the release date on https://github.com/libunwind/libunwind/releases
> 
>  CATEGORIES=    devel
> 
> -MASTER_SITES=    SAVANNAH \
> 
> -        https://github.com/libunwind/libunwind/releases/download/v${PORTVERSION}/
> 
> -DISTNAME=    ${PORTNAME}-1.6.2
> 
> -
> 
> -PATCH_SITES=    https://github.com/libunwind/libunwind/commit/
> 
> -PATCHFILES=    ce7e1002888a03fde0eea631748489b12ff56490.patch:-p1
> 
> +MASTER_SITES=    https://github.com/libunwind/libunwind/releases/download/v${LIBUNWIND_VERSION}/
> 
> +DISTNAME=    ${PORTNAME}-${LIBUNWIND_VERSION}
> 
>  
> 
>  MAINTAINER=    sunpoet@FreeBSD.org
> 
>  COMMENT=    Generic stack unwinding library
> 
> -WWW=        https://www.nongnu.org/libunwind/
> 
> +WWW=        https://github.com/libunwind/libunwind \
> 
> +        https://www.nongnu.org/libunwind/
> 
>  
> 
>  LICENSE=    MIT
> 
>  LICENSE_FILE=    ${WRKSRC}/COPYING
> 
> @@ -31,6 +27,8 @@ PLIST_SUB=    ARCH=${ARCH:S|amd64|x86_64|:C|armv.|arm|:S|i386|x86|:C|powerpc64.*|pp
> 
>  
> 
>  CPE_VENDOR=    libunwind_project
> 
>  
> 
> +LIBUNWIND_VERSION=    1.7.2
> 
> +
> 
>  .include <bsd.port.options.mk> [http://bsd.port.options.mk>];
> 
>  
> 
>  .if ${ARCH:Mpowerpc*}
> 
> diff --git a/devel/libunwind/distinfo b/devel/libunwind/distinfo
> 
> index 5d98b5400168..03fe9071a429 100644
> 
> --- a/devel/libunwind/distinfo
> 
> +++ b/devel/libunwind/distinfo
> 
> @@ -1,5 +1,3 @@
> 
> -TIMESTAMP = 1682376479
> 
> -SHA256 (libunwind-1.6.2.tar.gz) = 4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976
> 
> -SIZE (libunwind-1.6.2.tar.gz) = 901392
> 
> -SHA256 (ce7e1002888a03fde0eea631748489b12ff56490.patch) = 1bc9c6c2c3a73893fdd54e67c154633a1c6f756b1f71bc99353edc417cb24ee0
> 
> -SIZE (ce7e1002888a03fde0eea631748489b12ff56490.patch) = 18260
> 
> +TIMESTAMP = 1697307744
> 
> +SHA256 (libunwind-1.7.2.tar.gz) = a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6
> 
> +SIZE (libunwind-1.7.2.tar.gz) = 912590
> 
> diff --git a/devel/libunwind/files/patch-aarch64 b/devel/libunwind/files/patch-aarch64
> 
> deleted file mode 100644
> 
> index 5df59a1815ae..000000000000
> 
> --- a/devel/libunwind/files/patch-aarch64
> 
> +++ /dev/null
> 
> @@ -1,64 +0,0 @@
> 
> -Reference:    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262447
> 
> -        https://github.com/libunwind/libunwind/pull/344
> 
> -
> 
> ---- include/libunwind-aarch64.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/libunwind-aarch64.h
> 
> -@@ -226,15 +226,24 @@ typedef struct
> 
> - #else
> 
> - /* On AArch64, we can directly use ucontext_t as the unwind context.  */
> 
> - typedef ucontext_t unw_tdep_context_t;
> 
> -+#if defined(__FreeBSD__)
> 
> -+typedef ucontext_t unw_fpsimd_context_t;
> 
> - #endif
> 
> -+#endif
> 
> - 
> 
> - 
> 
> - #include "libunwind-common.h"
> 
> - #include "libunwind-dynamic.h"
> 
> - 
> 
> -+#if defined(__FreeBSD__)
> 
> -+#define UNW_BASE register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.mc_gpregs.gp_x[0];
> 
> -+#else
> 
> -+#define UNW_BASE register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.regs;
> 
> -+#endif
> 
> -+
> 
> - #define unw_tdep_getcontext(uc) ({                    \
> 
> -   unw_tdep_context_t *unw_ctx = (uc);                    \
> 
> --  register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.regs; \
> 
> -+  UNW_BASE \
> 
> -   __asm__ __volatile__ (                            \
> 
> -      "stp x0, x1, [%[base], #0]\n" \
> 
> -      "stp x2, x3, [%[base], #16]\n" \
> 
> ---- src/aarch64/Ginit.c.orig    2021-11-30 17:12:31 UTC
> 
> -+++ src/aarch64/Ginit.c
> 
> -@@ -47,9 +47,17 @@ static inline void *
> 
> - uc_addr (unw_tdep_context_t *uc, int reg)
> 
> - {
> 
> -   if (reg &gt;= UNW_AARCH64_X0 && reg < UNW_AARCH64_V0)
> 
> -+#if defined(__FreeBSD__)
> 
> -+    return &uc->uc_mcontext.mc_gpregs.gp_x[reg];
> 
> -+#else
> 
> -     return &uc->uc_mcontext.regs[reg];
> 
> -+#endif
> 
> -   else if (reg &gt;= UNW_AARCH64_V0 && reg &lt;= UNW_AARCH64_V31)
> 
> -+#if defined(__FreeBSD__)
> 
> -+    return &GET_FPCTX(uc)->uc_mcontext.mc_fpregs.fp_q[reg - UNW_AARCH64_V0];
> 
> -+#else
> 
> -     return &GET_FPCTX(uc)->vregs[reg - UNW_AARCH64_V0];
> 
> -+#endif
> 
> -   else
> 
> -     return NULL;
> 
> - }
> 
> ---- src/aarch64/unwind_i.h.orig    2020-04-28 15:49:14 UTC
> 
> -+++ src/aarch64/unwind_i.h
> 
> -@@ -59,6 +59,10 @@ extern int aarch64_local_resume (unw_addr_space_t as, 
> 
> -   } while (0)
> 
> - #endif
> 
> - 
> 
> -+#if defined(__FreeBSD__)
> 
> -+#define GET_FPCTX(uc) ((unw_tdep_context_t *)(&uc->uc_mcontext.mc_spare))
> 
> -+#else
> 
> - #define GET_FPCTX(uc) ((unw_fpsimd_context_t *)(&uc->uc_mcontext.__reserved))
> 
> -+#endif
> 
> - 
> 
> - #endif /* unwind_i_h */
> 
> diff --git a/devel/libunwind/files/patch-bug-269875 b/devel/libunwind/files/patch-bug-269875
> 
> deleted file mode 100644
> 
> index 6655731e6c4b..000000000000
> 
> --- a/devel/libunwind/files/patch-bug-269875
> 
> +++ /dev/null
> 
> @@ -1,310 +0,0 @@
> 
> -Obtained from:    https://github.com/libunwind/libunwind/commit/400b3f819ad44ff4e15487b163cc3613389cb4c8
> 
> -
> 
> ---- include/dwarf.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/dwarf.h
> 
> -@@ -231,6 +231,7 @@ typedef enum
> 
> -     DWARF_WHERE_REG,            /* register saved in another register */
> 
> -     DWARF_WHERE_EXPR,           /* register saved */
> 
> -     DWARF_WHERE_VAL_EXPR,       /* register has computed value */
> 
> -+    DWARF_WHERE_CFA,            /* register is set to the computed cfa value */
> 
> -   }
> 
> - dwarf_where_t;
> 
> - 
> 
> -@@ -313,7 +314,7 @@ typedef struct dwarf_cursor
> 
> -     void *as_arg;               /* argument to address-space callbacks */
> 
> -     unw_addr_space_t as;        /* reference to per-address-space info */
> 
> - 
> 
> --    unw_word_t cfa;     /* canonical frame address; aka frame-/stack-pointer */
> 
> -+    unw_word_t cfa;     /* canonical frame address; aka frame-pointer */
> 
> -     unw_word_t ip;              /* instruction pointer */
> 
> -     unw_word_t args_size;       /* size of arguments */
> 
> -     unw_word_t eh_args[UNW_TDEP_NUM_EH_REGS];
> 
> ---- include/libunwind_i.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/libunwind_i.h
> 
> -@@ -346,6 +346,10 @@ static inline void invalidate_edi (struct elf_dyn_info
> 
> - 
> 
> - #include "tdep/libunwind_i.h"
> 
> - 
> 
> -+#ifndef TDEP_DWARF_SP
> 
> -+#define TDEP_DWARF_SP UNW_TDEP_SP
> 
> -+#endif
> 
> -+
> 
> - #ifndef tdep_get_func_addr
> 
> - # define tdep_get_func_addr(as,addr,v)          (*(v) = addr, 0)
> 
> - #endif
> 
> ---- include/tdep-x86/dwarf-config.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/tdep-x86/dwarf-config.h
> 
> -@@ -43,9 +43,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
> 
> - typedef struct dwarf_loc
> 
> -   {
> 
> -     unw_word_t val;
> 
> --#ifndef UNW_LOCAL_ONLY
> 
> -     unw_word_t type;            /* see X86_LOC_TYPE_* macros.  */
> 
> --#endif
> 
> -   }
> 
> - dwarf_loc_t;
> 
> - 
> 
> ---- include/tdep-x86/libunwind_i.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/tdep-x86/libunwind_i.h
> 
> -@@ -84,15 +84,26 @@ dwarf_get_uc(const struct dwarf_cursor *cursor)
> 
> - }
> 
> - 
> 
> - #define DWARF_GET_LOC(l)        ((l).val)
> 
> -+# define DWARF_LOC_TYPE_MEM     (0 << 0)
> 
> -+# define DWARF_LOC_TYPE_FP      (1 << 0)
> 
> -+# define DWARF_LOC_TYPE_REG     (1 << 1)
> 
> -+# define DWARF_LOC_TYPE_VAL     (1 << 2)
> 
> - 
> 
> --#ifdef UNW_LOCAL_ONLY
> 
> -+# define DWARF_IS_REG_LOC(l)    (((l).type & DWARF_LOC_TYPE_REG) != 0)
> 
> -+# define DWARF_IS_FP_LOC(l)     (((l).type & DWARF_LOC_TYPE_FP) != 0)
> 
> -+# define DWARF_IS_MEM_LOC(l)    ((l).type == DWARF_LOC_TYPE_MEM)
> 
> -+# define DWARF_IS_VAL_LOC(l)    (((l).type & DWARF_LOC_TYPE_VAL) != 0)
> 
> -+
> 
> -+# define DWARF_LOC(r, t)        ((dwarf_loc_t) { .val = (r), .type = (t) })
> 
> - # define DWARF_NULL_LOC         DWARF_LOC (0, 0)
> 
> --# define DWARF_IS_NULL_LOC(l)   (DWARF_GET_LOC (l) == 0)
> 
> --# define DWARF_LOC(r, t)        ((dwarf_loc_t) { .val = (r) })
> 
> --# define DWARF_IS_REG_LOC(l)    0
> 
> -+# define DWARF_IS_NULL_LOC(l)                                           \
> 
> -+                ({ dwarf_loc_t _l = (l); _l.val == 0 && _l.type == 0; })
> 
> -+# define DWARF_VAL_LOC(c,v)     The branch main has been updated by sunpoet:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=ee491a6c691b15e6a3313fe8d73cfb2b2ed06e83
> 
> commit ee491a6c691b15e6a3313fe8d73cfb2b2ed06e83
> 
> Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
> 
> AuthorDate: 2023-11-01 05:30:07 +0000
> 
> Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
> 
> CommitDate: 2023-11-01 05:30:07 +0000
> 
>     devel/libunwind: Update to 1.7.2
> 
>     
> 
>     - Change MASTER_SITES
> 
>     - Update WWW
> 
>     - Sort PLIST
> 
>     
> 
>     Changes:        https://github.com/libunwind/libunwind/releases
> 
>     PR:             274523
> 
>     Exp-run by:     antoine
> 
> ---
> 
>  devel/libunwind/Makefile               |  16 +-
> 
>  devel/libunwind/distinfo               |   8 +-
> 
>  devel/libunwind/files/patch-aarch64    |  64 -------
> 
>  devel/libunwind/files/patch-bug-269875 | 310 ---------------------------------
> 
>  devel/libunwind/files/patch-i386       |  13 ++
> 
>  devel/libunwind/pkg-plist              |  12 +-
> 
>  6 files changed, 30 insertions(+), 393 deletions(-)
> 
> diff --git a/devel/libunwind/Makefile b/devel/libunwind/Makefile
> 
> index 77af7ab31c2e..72927e2d1d9f 100644
> 
> --- a/devel/libunwind/Makefile
> 
> +++ b/devel/libunwind/Makefile
> 
> @@ -1,17 +1,13 @@
> 
>  PORTNAME=    libunwind
> 
> -PORTVERSION=    20211201    # This is the release date on https://download.savannah.gnu.org/releases/libunwind/
> 
> -PORTREVISION=    2
> 
> +PORTVERSION=    20230730    # This is the release date on https://github.com/libunwind/libunwind/releases
> 
>  CATEGORIES=    devel
> 
> -MASTER_SITES=    SAVANNAH \
> 
> -        https://github.com/libunwind/libunwind/releases/download/v${PORTVERSION}/
> 
> -DISTNAME=    ${PORTNAME}-1.6.2
> 
> -
> 
> -PATCH_SITES=    https://github.com/libunwind/libunwind/commit/
> 
> -PATCHFILES=    ce7e1002888a03fde0eea631748489b12ff56490.patch:-p1
> 
> +MASTER_SITES=    https://github.com/libunwind/libunwind/releases/download/v${LIBUNWIND_VERSION}/
> 
> +DISTNAME=    ${PORTNAME}-${LIBUNWIND_VERSION}
> 
>  
> 
>  MAINTAINER=    sunpoet@FreeBSD.org
> 
>  COMMENT=    Generic stack unwinding library
> 
> -WWW=        https://www.nongnu.org/libunwind/
> 
> +WWW=        https://github.com/libunwind/libunwind \
> 
> +        https://www.nongnu.org/libunwind/
> 
>  
> 
>  LICENSE=    MIT
> 
>  LICENSE_FILE=    ${WRKSRC}/COPYING
> 
> @@ -31,6 +27,8 @@ PLIST_SUB=    ARCH=${ARCH:S|amd64|x86_64|:C|armv.|arm|:S|i386|x86|:C|powerpc64.*|pp
> 
>  
> 
>  CPE_VENDOR=    libunwind_project
> 
>  
> 
> +LIBUNWIND_VERSION=    1.7.2
> 
> +
> 
>  .include <bsd.port.options.mk> [http://bsd.port.options.mk>];
> 
>  
> 
>  .if ${ARCH:Mpowerpc*}
> 
> diff --git a/devel/libunwind/distinfo b/devel/libunwind/distinfo
> 
> index 5d98b5400168..03fe9071a429 100644
> 
> --- a/devel/libunwind/distinfo
> 
> +++ b/devel/libunwind/distinfo
> 
> @@ -1,5 +1,3 @@
> 
> -TIMESTAMP = 1682376479
> 
> -SHA256 (libunwind-1.6.2.tar.gz) = 4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976
> 
> -SIZE (libunwind-1.6.2.tar.gz) = 901392
> 
> -SHA256 (ce7e1002888a03fde0eea631748489b12ff56490.patch) = 1bc9c6c2c3a73893fdd54e67c154633a1c6f756b1f71bc99353edc417cb24ee0
> 
> -SIZE (ce7e1002888a03fde0eea631748489b12ff56490.patch) = 18260
> 
> +TIMESTAMP = 1697307744
> 
> +SHA256 (libunwind-1.7.2.tar.gz) = a18a6a24307443a8ace7a8acc2ce79fbbe6826cd0edf98d6326d0225d6a5d6e6
> 
> +SIZE (libunwind-1.7.2.tar.gz) = 912590
> 
> diff --git a/devel/libunwind/files/patch-aarch64 b/devel/libunwind/files/patch-aarch64
> 
> deleted file mode 100644
> 
> index 5df59a1815ae..000000000000
> 
> --- a/devel/libunwind/files/patch-aarch64
> 
> +++ /dev/null
> 
> @@ -1,64 +0,0 @@
> 
> -Reference:    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262447
> 
> -        https://github.com/libunwind/libunwind/pull/344
> 
> -
> 
> ---- include/libunwind-aarch64.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/libunwind-aarch64.h
> 
> -@@ -226,15 +226,24 @@ typedef struct
> 
> - #else
> 
> - /* On AArch64, we can directly use ucontext_t as the unwind context.  */
> 
> - typedef ucontext_t unw_tdep_context_t;
> 
> -+#if defined(__FreeBSD__)
> 
> -+typedef ucontext_t unw_fpsimd_context_t;
> 
> - #endif
> 
> -+#endif
> 
> - 
> 
> - 
> 
> - #include "libunwind-common.h"
> 
> - #include "libunwind-dynamic.h"
> 
> - 
> 
> -+#if defined(__FreeBSD__)
> 
> -+#define UNW_BASE register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.mc_gpregs.gp_x[0];
> 
> -+#else
> 
> -+#define UNW_BASE register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.regs;
> 
> -+#endif
> 
> -+
> 
> - #define unw_tdep_getcontext(uc) ({                    \
> 
> -   unw_tdep_context_t *unw_ctx = (uc);                    \
> 
> --  register uint64_t unw_base __asm__ ("x0") = (uint64_t) unw_ctx->uc_mcontext.regs; \
> 
> -+  UNW_BASE \
> 
> -   __asm__ __volatile__ (                            \
> 
> -      "stp x0, x1, [%[base], #0]\n" \
> 
> -      "stp x2, x3, [%[base], #16]\n" \
> 
> ---- src/aarch64/Ginit.c.orig    2021-11-30 17:12:31 UTC
> 
> -+++ src/aarch64/Ginit.c
> 
> -@@ -47,9 +47,17 @@ static inline void *
> 
> - uc_addr (unw_tdep_context_t *uc, int reg)
> 
> - {
> 
> -   if (reg &gt;= UNW_AARCH64_X0 && reg < UNW_AARCH64_V0)
> 
> -+#if defined(__FreeBSD__)
> 
> -+    return &uc->uc_mcontext.mc_gpregs.gp_x[reg];
> 
> -+#else
> 
> -     return &uc->uc_mcontext.regs[reg];
> 
> -+#endif
> 
> -   else if (reg &gt;= UNW_AARCH64_V0 && reg &lt;= UNW_AARCH64_V31)
> 
> -+#if defined(__FreeBSD__)
> 
> -+    return &GET_FPCTX(uc)->uc_mcontext.mc_fpregs.fp_q[reg - UNW_AARCH64_V0];
> 
> -+#else
> 
> -     return &GET_FPCTX(uc)->vregs[reg - UNW_AARCH64_V0];
> 
> -+#endif
> 
> -   else
> 
> -     return NULL;
> 
> - }
> 
> ---- src/aarch64/unwind_i.h.orig    2020-04-28 15:49:14 UTC
> 
> -+++ src/aarch64/unwind_i.h
> 
> -@@ -59,6 +59,10 @@ extern int aarch64_local_resume (unw_addr_space_t as, 
> 
> -   } while (0)
> 
> - #endif
> 
> - 
> 
> -+#if defined(__FreeBSD__)
> 
> -+#define GET_FPCTX(uc) ((unw_tdep_context_t *)(&uc->uc_mcontext.mc_spare))
> 
> -+#else
> 
> - #define GET_FPCTX(uc) ((unw_fpsimd_context_t *)(&uc->uc_mcontext.__reserved))
> 
> -+#endif
> 
> - 
> 
> - #endif /* unwind_i_h */
> 
> diff --git a/devel/libunwind/files/patch-bug-269875 b/devel/libunwind/files/patch-bug-269875
> 
> deleted file mode 100644
> 
> index 6655731e6c4b..000000000000
> 
> --- a/devel/libunwind/files/patch-bug-269875
> 
> +++ /dev/null
> 
> @@ -1,310 +0,0 @@
> 
> -Obtained from:    https://github.com/libunwind/libunwind/commit/400b3f819ad44ff4e15487b163cc3613389cb4c8
> 
> -
> 
> ---- include/dwarf.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/dwarf.h
> 
> -@@ -231,6 +231,7 @@ typedef enum
> 
> -     DWARF_WHERE_REG,            /* register saved in another register */
> 
> -     DWARF_WHERE_EXPR,           /* register saved */
> 
> -     DWARF_WHERE_VAL_EXPR,       /* register has computed value */
> 
> -+    DWARF_WHERE_CFA,            /* register is set to the computed cfa value */
> 
> -   }
> 
> - dwarf_where_t;
> 
> - 
> 
> -@@ -313,7 +314,7 @@ typedef struct dwarf_cursor
> 
> -     void *as_arg;               /* argument to address-space callbacks */
> 
> -     unw_addr_space_t as;        /* reference to per-address-space info */
> 
> - 
> 
> --    unw_word_t cfa;     /* canonical frame address; aka frame-/stack-pointer */
> 
> -+    unw_word_t cfa;     /* canonical frame address; aka frame-pointer */
> 
> -     unw_word_t ip;              /* instruction pointer */
> 
> -     unw_word_t args_size;       /* size of arguments */
> 
> -     unw_word_t eh_args[UNW_TDEP_NUM_EH_REGS];
> 
> ---- include/libunwind_i.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/libunwind_i.h
> 
> -@@ -346,6 +346,10 @@ static inline void invalidate_edi (struct elf_dyn_info
> 
> - 
> 
> - #include "tdep/libunwind_i.h"
> 
> - 
> 
> -+#ifndef TDEP_DWARF_SP
> 
> -+#define TDEP_DWARF_SP UNW_TDEP_SP
> 
> -+#endif
> 
> -+
> 
> - #ifndef tdep_get_func_addr
> 
> - # define tdep_get_func_addr(as,addr,v)          (*(v) = addr, 0)
> 
> - #endif
> 
> ---- include/tdep-x86/dwarf-config.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/tdep-x86/dwarf-config.h
> 
> -@@ -43,9 +43,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
> 
> - typedef struct dwarf_loc
> 
> -   {
> 
> -     unw_word_t val;
> 
> --#ifndef UNW_LOCAL_ONLY
> 
> -     unw_word_t type;            /* see X86_LOC_TYPE_* macros.  */
> 
> --#endif
> 
> -   }
> 
> - dwarf_loc_t;
> 
> - 
> 
> ---- include/tdep-x86/libunwind_i.h.orig    2021-12-01 00:46:39 UTC
> 
> -+++ include/tdep-x86/libunwind_i.h
> 
> -@@ -84,15 +84,26 @@ dwarf_get_uc(const struct dwarf_cursor *cursor)
> 
> - }
> 
> - 
> 
> - #define DWARF_GET_LOC(l)        ((l).val)
> 
> -+# define DWARF_LOC_TYPE_MEM     (0 << 0)
> 
> -+# define DWARF_LOC_TYPE_FP      (1 << 0)
> 
> -+# define DWARF_LOC_TYPE_REG     (1 << 1)
> 
> -+# define DWARF_LOC_TYPE_VAL     (1 << 2)
> 
> - 
> 
> --#ifdef UNW_LOCAL_ONLY
> 
> -+# define DWARF_IS_REG_LOC(l)    (((l).type & DWARF_LOC_TYPE_REG) != 0)
> 
> -+# define DWARF_IS_FP_LOC(l)     (((l).type & DWARF_LOC_TYPE_FP) != 0)
> 
> -+# define DWARF_IS_MEM_LOC(l)    ((l).type == DWARF_LOC_TYPE_MEM)
> 
> -+# define DWARF_IS_VAL_LOC(l)    (((l).type & DWARF_LOC_TYPE_VAL) != 0)
> 
> -+
> 
> -+# define DWARF_LOC(r, t)        ((dwarf_loc_t) { .val = (r), .type = (t) })
> 
> - # define DWARF_NULL_LOC         DWARF_LOC (0, 0)
> 
> --# define DWARF_IS_NULL_LOC(l)   (DWARF_GET_LOC (l) == 0)
> 
> --# define DWARF_LOC(r, t)        ((dwarf_loc_t) { .val = (r) })
> 
> --# define DWARF_IS_REG_LOC(l)    0
> 
> -+# define DWARF_IS_NULL_LOC(l)                                           \
> 
> -+                ({ dwarf_loc_t _l = (l); _l.val == 0 && _l.type == 0; })
> 
> -+# define DWARF_VAL_LOC(c,v)     -     ret = dwarf_get (&c->dwarf, c->dwarf.loc[RIP], &c->dwarf.ip);
> 
> -     Debug (1, "Frame Chain [RIP=0x%Lx] = 0x%Lx\n",
> 
> ---- src/x86_64/Gregs.c.orig    2021-12-01 00:46:39 UTC
> 
> -+++ src/x86_64/Gregs.c
> 
> -@@ -79,7 +79,6 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, u
> 
> -       break;
> 
> - 
> 
> -     case UNW_X86_64_CFA:
> 
> --    case UNW_X86_64_RSP:
> 
> -       if (write)
> 
> -         return -UNW_EREADONLYREG;
> 
> -       *valp = c->dwarf.cfa [http://dwarf.cfa];
> 
> -@@ -107,6 +106,7 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, u
> 
> -     case UNW_X86_64_RCX: loc = c->dwarf.loc[RCX]; break;
> 
> -     case UNW_X86_64_RBX: loc = c->dwarf.loc[RBX]; break;
> 
> - 
> 
> -+    case UNW_X86_64_RSP: loc = c->dwarf.loc[RSP]; break;
> 
> -     case UNW_X86_64_RBP: loc = c->dwarf.loc[RBP]; break;
> 
> -     case UNW_X86_64_RSI: loc = c->dwarf.loc[RSI]; break;
> 
> -     case UNW_X86_64_RDI: loc = c->dwarf.loc[RDI]; break;
> 
> ---- src/x86_64/Gstep.c.orig    2021-12-01 00:46:39 UTC
> 
> -+++ src/x86_64/Gstep.c
> 
> -@@ -223,7 +223,7 @@ unw_step (unw_cursor_t *cursor)
> 
> -                   Debug (2, "RIP fixup didn't work, falling back\n");
> 
> -                   unw_word_t rbp1 = 0;
> 
> -                   rbp_loc = DWARF_LOC(rbp, 0);
> 
> --                  rsp_loc = DWARF_NULL_LOC;
> 
> -+                  rsp_loc = DWARF_VAL_LOC(c, rbp + 16);
> 
> -                   rip_loc = DWARF_LOC (rbp + 8, 0);
> 
> -                   ret = dwarf_get (&c->dwarf, rbp_loc, &rbp1);
> 
> -                   Debug (1, "[RBP=0x%lx] = 0x%lx (cfa = 0x%lx) -> 0x%lx\n",
> 
> diff --git a/devel/libunwind/files/patch-i386 b/devel/libunwind/files/patch-i386
> 
> new file mode 100644
> 
> index 000000000000..86f24c8417ab
> 
> --- /dev/null
> 
> +++ b/devel/libunwind/files/patch-i386
> 
> @@ -0,0 +1,13 @@
> 
> +Reference:    https://github.com/libunwind/libunwind/pull/645
> 
> +        https://github.com/libunwind/libunwind/commit/24dc3b0880695137a48c2ad0244900f9bb8416eb
> 
> +
> 
> +--- src/x86/Gos-freebsd.c.orig    2023-07-30 11:32:29 UTC
> 
> ++++ src/x86/Gos-freebsd.c
> 
> +@@ -111,6 +111,7 @@ x86_handle_signal_frame (unw_cursor_t *cursor)
> 
> +     struct sigframe *sf;
> 
> +     uintptr_t uc_addr;
> 
> +     struct dwarf_loc esp_loc;
> 
> ++    int i;
> 
> + 
> 
> +     sf = (struct sigframe *)c->dwarf.cfa [http://dwarf.cfa];
> 
> +     uc_addr = (uintptr_t)&(sf->sf_uc);
> 
> diff --git a/devel/libunwind/pkg-plist b/devel/libunwind/pkg-plist
> 
> index 73e648228c4a..f2e8304ce292 100644
> 
> --- a/devel/libunwind/pkg-plist
> 
> +++ b/devel/libunwind/pkg-plist
> 
> @@ -1,9 +1,13 @@
> 
> +include/libunwind-%%ARCH%%.h
> 
>  include/libunwind-common.h
> 
>  %%COREDUMP%%include/libunwind-coredump.h
> 
>  include/libunwind-dynamic.h
> 
>  include/libunwind-ptrace.h
> 
> -include/libunwind-%%ARCH%%.h
> 
>  include/libunwind.h
> 
> +lib/libunwind-%%ARCH%%.a
> 
> +lib/libunwind-%%ARCH%%.so
> 
> +lib/libunwind-%%ARCH%%.so.8
> 
> +lib/libunwind-%%ARCH%%.so.8.0.1
> 
>  %%COREDUMP%%lib/libunwind-coredump.a
> 
>  %%COREDUMP%%lib/libunwind-coredump.so [http://libunwind-coredump.so]
> 
>  %%COREDUMP%%lib/libunwind-coredump.so.0 [http://libunwind-coredump.so.0]
> 
> @@ -18,10 +22,6 @@ lib/libunwind-setjmp.a
> 
>  lib/libunwind-setjmp.so [http://libunwind-setjmp.so]
> 
>  lib/libunwind-setjmp.so.0 [http://libunwind-setjmp.so.0]
> 
>  lib/libunwind-setjmp.so.0.0.0 [http://libunwind-setjmp.so.0.0.0]
> 
> -lib/libunwind-%%ARCH%%.a
> 
> -lib/libunwind-%%ARCH%%.so
> 
> -lib/libunwind-%%ARCH%%.so.8
> 
> -lib/libunwind-%%ARCH%%.so.8.0.1
> 
>  lib/libunwind.a
> 
>  lib/libunwind.so [http://libunwind.so]
> 
>  lib/libunwind.so.8 [http://libunwind.so.8]
> 
> @@ -47,7 +47,9 @@ man/man3/unw_get_accessors.3.gz
> 
>  man/man3/unw_get_fpreg.3.gz
> 
>  man/man3/unw_get_proc_info.3.gz
> 
>  man/man3/unw_get_proc_info_by_ip.3.gz
> 
> +man/man3/unw_get_proc_info_in_range.3.gz
> 
>  man/man3/unw_get_proc_name.3.gz
> 
> +man/man3/unw_get_proc_name_by_ip.3.gz
> 
>  man/man3/unw_get_reg.3.gz
> 
>  man/man3/unw_getcontext.3.gz
> 
>  man/man3/unw_init_local.3.gz

Hi,

Can we please follow upstream's versioning scheme like everyone else?

https://repology.org/project/libunwind/versions

Best regards,

Daniel