Please find below an update for devel/libdwarf to version 2.3.3.
This update is needed for a cpptrace[0] port I'm working on. However, it
breaks the only consumer it has: devel/ctftools (last upstream commit 10
years ago). I tried getting it to compile without success.
@jasper, as maintainer of libdwarf and developer of ctftools, how would
you like to proceed? Are you still using ctftools?
Notes about this update:
1. Due to a change in the version format, the update fails to install
with a conflict. How do I handle this?
2. Use meson build system
3. Bump SHARED_LIBS due to dynamic export removals
Index: devel/libdwarf/Makefile
===================================================================
RCS file: /cvs/ports/devel/libdwarf/Makefile,v
diff -u -p -r1.9 Makefile
--- devel/libdwarf/Makefile 21 Sep 2023 09:49:57 -0000 1.9
+++ devel/libdwarf/Makefile 4 Nov 2026 14:01:00 -0000
@@ -2,12 +2,10 @@
COMMENT= library to access the DWARF debugging file format
-V= 20161124
-REVISION= 0
+V= 2.3.3
DISTNAME= libdwarf-${V}
-WRKDIST= ${WRKDIR}/dwarf-${V}
-SHARED_LIBS= dwarf 1.1
+SHARED_LIBS= dwarf 2.0
CATEGORIES= devel
@@ -18,25 +16,16 @@ MAINTAINER= Jasper Lievisse Adriaanse <
# GPLv2 - LGPLv2.1
PERMIT_PACKAGE= Yes
-WANTLIB += c elf>=2 z
+WANTLIB += c z zstd
SITES= https://www.prevanders.net/
+EXTRACT_SUFX= .tar.xz
-NO_TEST= Yes
-
-CONFIGURE_STYLE= gnu
-CONFIGURE_ARGS= --enable-shared
+MODULES= devel/meson \
+ lang/python
-pre-configure:
- ${SUBST_CMD} ${WRKSRC}/libdwarf/Makefile.in
+BUILD_DEPENDS= archivers/zstd
-do-install:
- ${INSTALL_DATA_DIR} ${PREFIX}/include/libdwarf
- ${INSTALL_DATA} ${WRKBUILD}/libdwarf/{,lib}dwarf.h \
- ${PREFIX}/include/libdwarf/
- ${INSTALL_DATA}
${WRKBUILD}/libdwarf/libdwarf.{a,so.${LIBdwarf_VERSION}} \
- ${PREFIX}/lib/
- ${INSTALL_PROGRAM} ${WRKBUILD}/dwarfdump/dwarfdump \
- ${PREFIX}/bin/
+NO_TEST= Yes
.include <bsd.port.mk>
Index: devel/libdwarf/distinfo
===================================================================
RCS file: /cvs/ports/devel/libdwarf/distinfo,v
diff -u -p -r1.3 distinfo
--- devel/libdwarf/distinfo 28 Feb 2017 21:40:03 -0000 1.3
+++ devel/libdwarf/distinfo 4 Nov 2026 14:01:00 -0000
@@ -1,2 +1,2 @@
-SHA256 (libdwarf-20161124.tar.gz) =
vT1tx9oFCYdvuVuGgfFl/r2JiEXcZnFKpY5puP7KmI8=
-SIZE (libdwarf-20161124.tar.gz) = 1732155
+SHA256 (libdwarf-2.3.3.tar.xz) = veE9HEm+byRnMmpuCzkZJHRxRV0W7vw8a+JsfUuso2o=
+SIZE (libdwarf-2.3.3.tar.xz) = 3685784
Index: devel/libdwarf/patches/patch-libdwarf_Makefile_in
===================================================================
RCS file: devel/libdwarf/patches/patch-libdwarf_Makefile_in
diff -N devel/libdwarf/patches/patch-libdwarf_Makefile_in
--- devel/libdwarf/patches/patch-libdwarf_Makefile_in 11 Mar 2022 18:50:30
-0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- libdwarf/Makefile.in.orig Thu Nov 24 21:15:02 2016
-+++ libdwarf/Makefile.in Mon Feb 6 14:08:02 2017
-@@ -55,7 +55,7 @@ dwfpic = @dwfpic@
- dwfwall = @dwfwall@
- dwfsanitize = @dwfsanitize@
- dwfzlib = @dwfzlib@
--SONAME = libdwarf.so.1
-+SONAME = libdwarf.so.${LIBdwarf_VERSION}
- CFLAGS = $(PREINCS) @CPPFLAGS@ @CFLAGS@ $(INCLUDES) $(dwfpic) $(dwfwall)
$(dwfsanitize) $(POSTINCS)
- LDFLAGS = $(PRELIBS) @LDFLAGS@ $(dwfsanitize) $(POSTLIBS)
- HOSTCFLAGS = $(CFLAGS)
Index: devel/libdwarf/patches/patch-libdwarf_configure
===================================================================
RCS file: devel/libdwarf/patches/patch-libdwarf_configure
diff -N devel/libdwarf/patches/patch-libdwarf_configure
--- devel/libdwarf/patches/patch-libdwarf_configure 11 Mar 2022 18:50:30
-0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-Adjust configure tests to ensure HAVE_ELF64_RELA and HAVE_ELF64_SYM get
-defined.
-
---- libdwarf/configure.orig Sat Oct 1 00:30:27 2016
-+++ libdwarf/configure Mon Feb 6 14:04:20 2017
-@@ -4246,7 +4246,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
--#include <elf.h>
-+#include <libelf.h>
- int
- main ()
- {
-@@ -4263,7 +4263,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
--#include <elf.h>
-+#include <libelf.h>
- int
- main ()
- {
Index: devel/libdwarf/patches/patch-libdwarf_dwarf_elf_access_c
===================================================================
RCS file: devel/libdwarf/patches/patch-libdwarf_dwarf_elf_access_c
diff -N devel/libdwarf/patches/patch-libdwarf_dwarf_elf_access_c
--- devel/libdwarf/patches/patch-libdwarf_dwarf_elf_access_c 11 Mar 2022
18:50:30 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-Include reloc.h to resolve the R_ macros which are used in
-is_(32|64)bit_abs_reloc() to determine the relocation size.
-
---- libdwarf/dwarf_elf_access.c.orig Wed Jun 8 17:28:34 2016
-+++ libdwarf/dwarf_elf_access.c Fri Sep 9 14:11:44 2016
-@@ -41,6 +41,8 @@
- #include "dwarf_reloc_x86_64.h"
- #endif /* _WIN32 */
-
-+#include <machine/reloc.h>
-+
- #ifdef HAVE_ELF_H
- #include <elf.h>
- #endif
Index: devel/libdwarf/patches/patch-libdwarf_pc_in
===================================================================
RCS file: devel/libdwarf/patches/patch-libdwarf_pc_in
diff -N devel/libdwarf/patches/patch-libdwarf_pc_in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ devel/libdwarf/patches/patch-libdwarf_pc_in 4 Nov 2026 14:01:00 -0000
@@ -0,0 +1,12 @@
+Index: libdwarf.pc.in
+--- libdwarf.pc.in.orig
++++ libdwarf.pc.in
+@@ -2,7 +2,7 @@ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+ includedir=@includedir@
+-pkgincludedir=@includedir@/libdwarf-@VMAJ@
++pkgincludedir=@includedir@/libdwarf
+
+ Name: libdwarf
+ Description: DWARF debug symbols library
Index: devel/libdwarf/patches/patch-src_lib_libdwarf_meson_build
===================================================================
RCS file: devel/libdwarf/patches/patch-src_lib_libdwarf_meson_build
diff -N devel/libdwarf/patches/patch-src_lib_libdwarf_meson_build
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ devel/libdwarf/patches/patch-src_lib_libdwarf_meson_build 4 Nov 2026
14:01:00 -0000
@@ -0,0 +1,10 @@
+Index: src/lib/libdwarf/meson.build
+--- src/lib/libdwarf/meson.build.orig
++++ src/lib/libdwarf/meson.build
+@@ -154,5 +154,5 @@ libdwarf = declare_dependency(
+ meson.override_dependency('libdwarf', libdwarf)
+
+ install_headers(libdwarf_header_src,
+- install_dir : dir_pkginclude + '-' + v_maj
++ install_dir : dir_pkginclude
+ )
Index: devel/libdwarf/pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/libdwarf/pkg/PLIST,v
diff -u -p -r1.2 PLIST
--- devel/libdwarf/pkg/PLIST 11 Mar 2022 18:50:30 -0000 1.2
+++ devel/libdwarf/pkg/PLIST 4 Nov 2026 14:01:00 -0000
@@ -2,5 +2,8 @@
include/libdwarf/
include/libdwarf/dwarf.h
include/libdwarf/libdwarf.h
-lib/libdwarf.a
@lib lib/libdwarf.so.${LIBdwarf_VERSION}
+lib/pkgconfig/libdwarf.pc
+@man man/man1/dwarfdump.1
+share/dwarfdump/
+share/dwarfdump/dwarfdump.conf