pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pharo-vm12: Add pharo-vm12-12.0.3-beta



Module Name:	pkgsrc-wip
Committed By:	Atsushi Toyokura <asteria.at%gmail.com@localhost>
Pushed By:	steleto
Date:		Wed Aug 5 00:55:09 2026 +0900
Changeset:	2dac8b44d3929c66a09c16ea03cd75266d70783d

Modified Files:
	Makefile
Added Files:
	pharo-vm12/ALTERNATIVES
	pharo-vm12/DESCR
	pharo-vm12/Makefile
	pharo-vm12/PLIST
	pharo-vm12/distinfo
	pharo-vm12/patches/patch-CMakeLists.txt
	pharo-vm12/patches/patch-cmake_OpenBSD.cmake
	pharo-vm12/patches/patch-cmake_importCairo.cmake
	pharo-vm12/patches/patch-cmake_plugins.cmake
	pharo-vm12/patches/patch-cmake_versionExtraction.cmake
	pharo-vm12/patches/patch-include_pharovm_debug.h
	pharo-vm12/patches/patch-packaging_linux_bin_launch.sh.in
	pharo-vm12/patches/patch-src_tty_tty.c
	pharo-vm12/patches/patch-src_unix_debugUnix.c

Log Message:
pharo-vm12: Add pharo-vm12-12.0.3-beta

This repository contains the code of the Pharo Virtual Machine. This
implementation started as a fork of OpenSmalltalk-VM. The current
project would not have been possible without all their previous work.

The current implementation has the following core features:

- an indirect threaded bytecode compiler using GNU extensions
- a generational scavenger garbage collector: a semi-space + nursery
  for the young generation, and a mark-compact collector for the old
  generation
- a space for permanent objects that do not need to be scanned by the
  GC
- a baseline JIT compiler that
  - translates primitive operations using IR templates
  - translates bytecode methods using a simple abstract interpretation
    approach to reduce memory pressure (fewer loads/stores)
- FFI through the well-known libFFI, and support for non-blocking FFI
  using worker threads

For more details about the whole Pharo VM project, refer to our wiki.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=2dac8b44d3929c66a09c16ea03cd75266d70783d

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                           |  1 +
 pharo-vm12/ALTERNATIVES                            |  1 +
 pharo-vm12/DESCR                                   | 20 +++++++
 pharo-vm12/Makefile                                | 63 ++++++++++++++++++++++
 pharo-vm12/PLIST                                   | 23 ++++++++
 pharo-vm12/distinfo                                | 14 +++++
 pharo-vm12/patches/patch-CMakeLists.txt            | 52 ++++++++++++++++++
 pharo-vm12/patches/patch-cmake_OpenBSD.cmake       | 26 +++++++++
 pharo-vm12/patches/patch-cmake_importCairo.cmake   | 15 ++++++
 pharo-vm12/patches/patch-cmake_plugins.cmake       | 15 ++++++
 .../patches/patch-cmake_versionExtraction.cmake    | 15 ++++++
 pharo-vm12/patches/patch-include_pharovm_debug.h   | 14 +++++
 .../patches/patch-packaging_linux_bin_launch.sh.in | 17 ++++++
 pharo-vm12/patches/patch-src_tty_tty.c             | 16 ++++++
 pharo-vm12/patches/patch-src_unix_debugUnix.c      | 50 +++++++++++++++++
 15 files changed, 342 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index 6b554bbb91..b782d997f3 100644
--- a/Makefile
+++ b/Makefile
@@ -3235,6 +3235,7 @@ SUBDIR+=	phantomjs2
 SUBDIR+=	pharo
 SUBDIR+=	pharo-vm
 SUBDIR+=	pharo-vm10
+SUBDIR+=	pharo-vm12
 SUBDIR+=	pharo10
 SUBDIR+=	pharo11
 SUBDIR+=	pharo12
diff --git a/pharo-vm12/ALTERNATIVES b/pharo-vm12/ALTERNATIVES
new file mode 100644
index 0000000000..b46c05c226
--- /dev/null
+++ b/pharo-vm12/ALTERNATIVES
@@ -0,0 +1 @@
+bin/pharo @PREFIX@/bin/pharo12
diff --git a/pharo-vm12/DESCR b/pharo-vm12/DESCR
new file mode 100644
index 0000000000..4e02dbc49c
--- /dev/null
+++ b/pharo-vm12/DESCR
@@ -0,0 +1,20 @@
+This repository contains the code of the Pharo Virtual Machine. This
+implementation started as a fork of OpenSmalltalk-VM. The current
+project would not have been possible without all their previous work.
+
+The current implementation has the following core features:
+
+- an indirect threaded bytecode compiler using GNU extensions
+- a generational scavenger garbage collector: a semi-space + nursery
+  for the young generation, and a mark-compact collector for the old
+  generation
+- a space for permanent objects that do not need to be scanned by the
+  GC
+- a baseline JIT compiler that
+  - translates primitive operations using IR templates
+  - translates bytecode methods using a simple abstract interpretation
+    approach to reduce memory pressure (fewer loads/stores)
+- FFI through the well-known libFFI, and support for non-blocking FFI
+  using worker threads
+
+For more details about the whole Pharo VM project, refer to our wiki.
\ No newline at end of file
diff --git a/pharo-vm12/Makefile b/pharo-vm12/Makefile
new file mode 100644
index 0000000000..6cb3dba253
--- /dev/null
+++ b/pharo-vm12/Makefile
@@ -0,0 +1,63 @@
+# $NetBSD$
+
+PHAROVM_VER=	12.0.3-beta
+PHAROVM_AHEAD=	33
+PHAROVM_HASH=	23e5a5a
+
+DISTNAME=	PharoVM-v${PHAROVM_VER}+${PHAROVM_AHEAD}.${PHAROVM_HASH}-Linux-x86_64-c-src
+PKGNAME=	pharo-vm12-${PHAROVM_VER}
+CATEGORIES=	lang
+MASTER_SITES=	http://files.pharo.org/vm/pharo-spur64-headless/Linux-x86_64/source/
+EXTRACT_SUFX=	.zip
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://pharo.org/
+COMMENT=	VM used by Pharo
+LICENSE=	mit
+
+ONLY_FOR_PLATFORM=	NetBSD-[0-9]*-x86_64
+
+WRKSRC=		${WRKDIR}/pharo-vm
+USE_LANGUAGES=	c c++
+USE_CMAKE=	yes
+USE_TOOLS=	pkg-config
+
+CMAKE_CONFIGURE_ARGS+=	-DFLAVOUR=CoInterpreter
+CMAKE_CONFIGURE_ARGS+=	-DALWAYS_INTERACTIVE=1
+CMAKE_CONFIGURE_ARGS+=	-DGENERATE_SOURCES=OFF
+CMAKE_CONFIGURE_ARGS+=	-DPHARO_BIN_LOCATION=${PREFIX}/lib/pharo12
+
+TOOL_DEPENDS+=          graphviz-[0-9]*:../../graphics/graphviz
+
+SUBST_CLASSES+=			fix-paths
+SUBST_STAGE.fix-paths=		pre-build
+SUBST_MESSAGE.fix-paths=	Fixing absolute paths.
+SUBST_FILES.fix-paths=		packaging/linux/bin/launch.sh.in
+SUBST_SED.fix-paths=		-e "s,@pkglibdir@,${PREFIX}/lib,g"
+
+NOT_PAX_MPROTECT_SAFE+=	lib/pharo12/pharo
+
+INSTALLATION_DIRS=	bin lib/pharo12
+
+pre-configure:
+	${CP} ${WRKSRC}/cmake/OpenBSD.cmake ${WRKSRC}/cmake/NetBSD.cmake
+
+do-install:
+	cd ${WRKSRC}/build/packaging/linux/bin && \
+		${INSTALL_SCRIPT} pharo ${DESTDIR}${PREFIX}/bin/pharo12
+	cd ${WRKSRC}/build/vm/ && \
+		${INSTALL_PROGRAM} pharo ${DESTDIR}${PREFIX}/lib/pharo12
+	cd ${WRKSRC}/build/vm/ && find . -type f -name "*.so" | while read file; do \
+		${INSTALL_LIB} $$file ${DESTDIR}${PREFIX}/lib/pharo12; \
+	done
+
+.include "../../devel/SDL2/buildlink3.mk"
+.include "../../devel/libepoll-shim/buildlink3.mk"
+.include "../../devel/libffi/buildlink3.mk"
+.include "../../devel/libgit2/buildlink3.mk"
+.include "../../devel/libuuid/buildlink3.mk"
+.include "../../graphics/cairo/buildlink3.mk"
+.include "../../graphics/freetype2/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/pharo-vm12/PLIST b/pharo-vm12/PLIST
new file mode 100644
index 0000000000..6d62047b44
--- /dev/null
+++ b/pharo-vm12/PLIST
@@ -0,0 +1,23 @@
+@comment $NetBSD$
+bin/pharo12
+lib/pharo12/libB2DPlugin.so
+lib/pharo12/libBitBltPlugin.so
+lib/pharo12/libDSAPrims.so
+lib/pharo12/libFileAttributesPlugin.so
+lib/pharo12/libFilePlugin.so
+lib/pharo12/libFloatArrayPlugin.so
+lib/pharo12/libJPEGReadWriter2Plugin.so
+lib/pharo12/libJPEGReaderPlugin.so
+lib/pharo12/libLargeIntegers.so
+lib/pharo12/libLocalePlugin.so
+lib/pharo12/libMiscPrimitivePlugin.so
+lib/pharo12/libNewFilePlugin.so
+lib/pharo12/libPharoVMCore.so
+lib/pharo12/libSocketPlugin.so
+lib/pharo12/libSqueakSSL.so
+lib/pharo12/libSurfacePlugin.so
+lib/pharo12/libTestLibrary.so
+lib/pharo12/libUUIDPlugin.so
+lib/pharo12/libUnixOSProcessPlugin.so
+lib/pharo12/libtty.so
+lib/pharo12/pharo
diff --git a/pharo-vm12/distinfo b/pharo-vm12/distinfo
new file mode 100644
index 0000000000..7109cbc660
--- /dev/null
+++ b/pharo-vm12/distinfo
@@ -0,0 +1,14 @@
+$NetBSD$
+
+BLAKE2s (PharoVM-v12.0.3-beta+33.23e5a5a-Linux-x86_64-c-src.zip) = 362d548ac59a92f00d517808c8a141812a50c618ce35124f7862ba41f556bac2
+SHA512 (PharoVM-v12.0.3-beta+33.23e5a5a-Linux-x86_64-c-src.zip) = e8834abc78330a2c1f4802864cd225a973623d11ca59d1d8ac6c609c477a6ed6e22a098c249e5177b03d4beacb671965432365607ff8a5ff3755019c56dced03
+Size (PharoVM-v12.0.3-beta+33.23e5a5a-Linux-x86_64-c-src.zip) = 4487823 bytes
+SHA1 (patch-CMakeLists.txt) = e2e2f12c7195ed2cdc16fedd009c19bae8c04edb
+SHA1 (patch-cmake_OpenBSD.cmake) = 192a285ba8baeb3dd609123792fa990ae1321169
+SHA1 (patch-cmake_importCairo.cmake) = 2985bc5d3af82068d3ff50849dd15650040d2938
+SHA1 (patch-cmake_plugins.cmake) = 5b1b43cda6e1237db8f0db4317211d842a7cac62
+SHA1 (patch-cmake_versionExtraction.cmake) = 9bbbe323f054843727ce8009919ea6ebe82eb763
+SHA1 (patch-include_pharovm_debug.h) = a806f34f443b0d7907983d0d4f20fc121b7dfb65
+SHA1 (patch-packaging_linux_bin_launch.sh.in) = 1c1474bc3ff73fefb08949b7061b3d277f6bb52e
+SHA1 (patch-src_tty_tty.c) = 62cb5600911774a56bbf03caf7a0031fe09890b0
+SHA1 (patch-src_unix_debugUnix.c) = 42828876d3aa030b95d7ae20067a2a55869755da
diff --git a/pharo-vm12/patches/patch-CMakeLists.txt b/pharo-vm12/patches/patch-CMakeLists.txt
new file mode 100644
index 0000000000..b0a61ceb85
--- /dev/null
+++ b/pharo-vm12/patches/patch-CMakeLists.txt
@@ -0,0 +1,52 @@
+$NetBSD$
+
+- define NETBSD
+- backtrace(3) requires libexecinfo
+- use uuidgen(2)
+
+--- CMakeLists.txt.orig	2026-07-15 12:37:44.000000000 +0000
++++ CMakeLists.txt
+@@ -246,6 +246,9 @@ elseif(UNIX)
+     elseif(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
+         set(OPENBSD 1)
+         set(VM_TARGET_OS "openbsd")
++    elseif(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
++        set(NETBSD 1)
++        set(VM_TARGET_OS "netbsd")
+     else()
+         set(VM_TARGET_OS "${CMAKE_SYSTEM_NAME}")
+     endif()
+@@ -385,6 +388,7 @@ check_struct_has_member("struct tm" tm_gmtoff time.h H
+ check_function_exists(bzero HAVE_BZERO)
+ check_function_exists(getcontext HAVE_GETCONTEXT)
+ check_struct_has_member("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF)
++check_library_exists(execinfo backtrace "" HAVE_EXECINFO)
+ 
+ #Required by the UUID Plugin
+ 
+@@ -479,6 +483,10 @@ endif()
+ 	target_compile_definitions(${VM_LIBRARY_NAME} PRIVATE FEATURE_JIT_SIMD=1)
+ endif()
+ 
++if(${HAVE_EXECINFO})
++	target_link_libraries(${VM_LIBRARY_NAME} execinfo)
++endif()
++
+ #
+ # LibFFI
+ #
+@@ -523,6 +531,14 @@ if(OSX)
+     MACOSX_BUNDLE YES
+     MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/resources/mac/Info.plist.in"
+   )
++endif()
++
++if(NETBSD)
++  include(FindPkgConfig)
++  pkg_check_modules(EPOLL REQUIRED epoll-shim)
++  message(STATUS "epoll-shim:" ${EPOLL_VERSION})
++  target_include_directories(${VM_LIBRARY_NAME} PUBLIC ${EPOLL_INCLUDEDIR}/libepoll-shim)
++  target_link_libraries(${VM_LIBRARY_NAME} ${EPOLL_LINK_LIBRARIES})
+ endif()
+ 
+ target_link_libraries(${VM_EXECUTABLE_NAME} ${VM_LIBRARY_NAME})
diff --git a/pharo-vm12/patches/patch-cmake_OpenBSD.cmake b/pharo-vm12/patches/patch-cmake_OpenBSD.cmake
new file mode 100644
index 0000000000..d76f06eaf9
--- /dev/null
+++ b/pharo-vm12/patches/patch-cmake_OpenBSD.cmake
@@ -0,0 +1,26 @@
+$NetBSD$
+
+fix include directories
+
+--- cmake/OpenBSD.cmake.orig	2026-08-01 12:59:56.011291716 +0000
++++ cmake/OpenBSD.cmake
+@@ -14,8 +14,8 @@ PUBLIC
+ function(add_platform_headers)
+ target_include_directories(${VM_LIBRARY_NAME}
+ PUBLIC
+-    ${CMAKE_CURRENT_SOURCE_DIR}/include/unix
+-    ${CMAKE_CURRENT_SOURCE_DIR}/include/common
++    ${CMAKE_CURRENT_SOURCE_DIR}/include/pharovm/unix
++    ${CMAKE_CURRENT_SOURCE_DIR}/include/pharovm/common
+ )
+ endfunction() #add_platform_headers
+ 
+@@ -81,7 +81,7 @@ macro(configure_installables INSTALL_COMPONENT)
+ 
+ 
+ 	install(
+-	    DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/unix/"
++	    DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/pharovm/unix/"
+ 	    DESTINATION include/pharovm
+ 	    COMPONENT include
+ 	    FILES_MATCHING PATTERN *.h)
diff --git a/pharo-vm12/patches/patch-cmake_importCairo.cmake b/pharo-vm12/patches/patch-cmake_importCairo.cmake
new file mode 100644
index 0000000000..f20a7724eb
--- /dev/null
+++ b/pharo-vm12/patches/patch-cmake_importCairo.cmake
@@ -0,0 +1,15 @@
+$NetBSD$
+
+use system library
+
+--- cmake/importCairo.cmake.orig	2026-07-15 12:37:44.000000000 +0000
++++ cmake/importCairo.cmake
+@@ -16,6 +16,8 @@ if (BUILD_BUNDLE)
+     add_third_party_dependency("pixman-0.44.2")
+     add_third_party_dependency("cairo-1.18.4")
+     add_third_party_dependency("libpng-1.6.47")
++  elseif(NETBSD)
++    # use system library
+   else() #Linux
+     If(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l" OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64"))
+       add_third_party_dependency("pixman-0.40.0")
diff --git a/pharo-vm12/patches/patch-cmake_plugins.cmake b/pharo-vm12/patches/patch-cmake_plugins.cmake
new file mode 100644
index 0000000000..07aadd1760
--- /dev/null
+++ b/pharo-vm12/patches/patch-cmake_plugins.cmake
@@ -0,0 +1,15 @@
+$NetBSD$
+
+use system OpenSSL
+
+--- cmake/plugins.cmake.orig	2026-07-15 12:37:44.000000000 +0000
++++ cmake/plugins.cmake
+@@ -70,7 +70,7 @@ if(FEATURE_PLUGIN_SSL)
+         target_link_libraries(SqueakSSL PRIVATE OpenSSL::SSL OpenSSL::Crypto)
+         # The VM builds on an ubuntu with openssl 1.0, thus the ssl plugin links to it.
+         # Ship ssl 1.0 with the VM, so the ssl plugin loads
+-        if(BUILD_BUNDLE)
++        if(BUILD_BUNDLE AND NOT NETBSD)
+             add_third_party_dependency("openssl-1.0.2q")
+         endif()
+     endif()
diff --git a/pharo-vm12/patches/patch-cmake_versionExtraction.cmake b/pharo-vm12/patches/patch-cmake_versionExtraction.cmake
new file mode 100644
index 0000000000..9602c1d7dc
--- /dev/null
+++ b/pharo-vm12/patches/patch-cmake_versionExtraction.cmake
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Hide git
+
+--- cmake/versionExtraction.cmake.orig	2025-03-15 10:40:08.474855086 +0000
++++ cmake/versionExtraction.cmake
+@@ -35,7 +35,7 @@
+ 
+ # Check if git is found...
+ if (VERSION_UPDATE_FROM_GIT)
+-        find_package(Git)
++#        find_package(Git)
+ endif()
+ 
+ if (GIT_FOUND AND VERSION_UPDATE_FROM_GIT)
diff --git a/pharo-vm12/patches/patch-include_pharovm_debug.h b/pharo-vm12/patches/patch-include_pharovm_debug.h
new file mode 100644
index 0000000000..e791ae664c
--- /dev/null
+++ b/pharo-vm12/patches/patch-include_pharovm_debug.h
@@ -0,0 +1,14 @@
+$NetBSD$
+
+Need stdarg.h for va_list
+
+--- include/pharovm/debug.h.orig	2023-03-18 09:15:22.487573163 +0000
++++ include/pharovm/debug.h
+@@ -49,6 +49,7 @@ void error(char* aMessage);
+ 
+ 
+ #include <stdio.h>
++#include <stdarg.h>
+ 
+ int vm_printf(const char * format, ... );
+ void vm_setVMOutputStream(FILE * stream);
diff --git a/pharo-vm12/patches/patch-packaging_linux_bin_launch.sh.in b/pharo-vm12/patches/patch-packaging_linux_bin_launch.sh.in
new file mode 100644
index 0000000000..8dafbc7c57
--- /dev/null
+++ b/pharo-vm12/patches/patch-packaging_linux_bin_launch.sh.in
@@ -0,0 +1,17 @@
+$NetBSD$
+
+Add pkglibdir to LD_LIBRARY_PATH
+
+--- packaging/linux/bin/launch.sh.in.orig	2026-07-15 12:37:44.000000000 +0000
++++ packaging/linux/bin/launch.sh.in
+@@ -18,8 +18,8 @@ esac
+ *) PLUGINS="`pwd`/$BIN"
+ esac
+ 
+-if [ $(uname -s) = "OpenBSD" ]; then
+-  LD_LIBRARY_PATH="$PLUGINS:${LD_LIBRARY_PATH}" exec $GDB "$BIN/@VM_EXECUTABLE_NAME@" "$@"
++if [ $(uname -s) = "OpenBSD" -o $(uname -s) = "NetBSD" ]; then
++  LD_LIBRARY_PATH="$PLUGINS:@pkglibdir@:${LD_LIBRARY_PATH}" exec $GDB "$BIN/@VM_EXECUTABLE_NAME@" "$@"
+ fi
+ 
+ # On some linuxes there multiple versions of the C library.  If the image uses
diff --git a/pharo-vm12/patches/patch-src_tty_tty.c b/pharo-vm12/patches/patch-src_tty_tty.c
new file mode 100644
index 0000000000..cc68907654
--- /dev/null
+++ b/pharo-vm12/patches/patch-src_tty_tty.c
@@ -0,0 +1,16 @@
+$NetBSD$
+
+Use dprintf(3) specified in POSIX.1-2008
+
+--- src/tty/tty.c.orig	2026-08-01 09:45:59.975307960 +0000
++++ src/tty/tty.c
+@@ -1,6 +1,9 @@
+ #ifndef _XOPEN_SOURCE
+ #define _XOPEN_SOURCE 700
+ #endif
++#ifndef _POSIX_C_SOURCE
++#define _POSIX_C_SOURCE 200809L
++#endif
+ 
+ #include <errno.h>
+ #include <string.h>
diff --git a/pharo-vm12/patches/patch-src_unix_debugUnix.c b/pharo-vm12/patches/patch-src_unix_debugUnix.c
new file mode 100644
index 0000000000..89f76253fc
--- /dev/null
+++ b/pharo-vm12/patches/patch-src_unix_debugUnix.c
@@ -0,0 +1,50 @@
+$NetBSD$
+
+support NetBSD/amd64
+
+--- src/unix/debugUnix.c.orig	2026-08-01 09:47:22.597934814 +0000
++++ src/unix/debugUnix.c
+@@ -23,6 +23,12 @@
+ 
+ #endif
+ 
++#if __NetBSD__
++
++#include <ucontext.h>
++
++#endif
++
+ #ifdef HAVE_EXECINFO_H
+ # include <execinfo.h>
+ #endif
+@@ -275,6 +281,20 @@ void * printRegisterState(ucontext_t *uap, FILE* outpu
+ 			regs->mc_edi, regs->mc_edi, regs->mc_ebp, regs->mc_esp,
+ 			regs->mc_eip);
+ 	return regs->mc_eip;
++#elif __NetBSD__ && __x86_64__
++	__gregset_t *regs = &uap->uc_mcontext.__gregs;
++	fprintf_impl(output,
++			"\trax 0x%08llx rbx 0x%08llx rcx 0x%08llx rdx 0x%08llx\n"
++			"\trdi 0x%08llx rsi 0x%08llx rbp 0x%08llx rsp 0x%08llx\n"
++			"\tr8  0x%08llx r9  0x%08llx r10 0x%08llx r11 0x%08llx\n"
++			"\tr12 0x%08llx r13 0x%08llx r14 0x%08llx r15 0x%08llx\n"
++			"\trip 0x%08llx\n",
++			regs[_REG_RAX], regs[_REG_RBX], regs[_REG_RCX], regs[_REG_RDX],
++			regs[_REG_RDI], regs[_REG_RSI], regs[_REG_RBP], regs[_REG_RSP],
++			regs[_REG_R8 ], regs[_REG_R9 ], regs[_REG_R10], regs[_REG_R11],
++			regs[_REG_R12], regs[_REG_R13], regs[_REG_R14], regs[_REG_R15],
++			regs[_REG_RIP]);
++	return (void *)regs[_REG_RIP];
+ #elif __linux__ && __x86_64__
+ 	greg_t *regs = uap->uc_mcontext.gregs;
+ 	fprintf_impl(output,
+@@ -481,6 +501,9 @@ void reportStackState(const char *msg, char *date, int
+ # elif __FreeBSD__ && __x86_64__
+ 			void *fp = (void *)(uap ? uap->uc_mcontext.mc_rbp: 0);
+ 			void *sp = (void *)(uap ? uap->uc_mcontext.mc_rsp: 0);
++#elif __NetBSD__
++			void *fp = (void *)(uap ? _UC_MACHINE_FP(uap) : 0);
++			void *sp = (void *)(uap ? _UC_MACHINE_SP(uap) : 0);
+ # elif __OpenBSD__
+ 			void *fp = (void *)(uap ? uap->sc_rbp: 0);
+ 			void *sp = (void *)(uap ? uap->sc_rsp: 0);


Home | Main Index | Thread Index | Old Index