diff options
author | manu <manu@pkgsrc.org> | 2022-05-01 00:36:10 +0000 |
---|---|---|
committer | manu <manu@pkgsrc.org> | 2022-05-01 00:36:10 +0000 |
commit | 1ed89c1facdc7b06ac2325e5ffb1eca96485ca60 (patch) | |
tree | dc6e42d3cff1a5e778a62d15181aff87ed62e7b1 | |
parent | d038558cce9ef5e0c87f6f1ca3e9ac96ee47c8e4 (diff) | |
download | pkgsrc-1ed89c1facdc7b06ac2325e5ffb1eca96485ca60.tar.gz |
Let Articfox run on NetBSD PowerPC ports
This was tested on NetBSD-9.2/macppc
Patches submitted upstream at
https://github.com/wicknix/Arctic-Fox/pull/101
15 files changed, 450 insertions, 5 deletions
diff --git a/www/arcticfox/Makefile b/www/arcticfox/Makefile index a4456559c2c..fb698e6bbb3 100644 --- a/www/arcticfox/Makefile +++ b/www/arcticfox/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.5 2022/04/18 19:12:16 adam Exp $ +# $NetBSD: Makefile,v 1.6 2022/05/01 00:36:10 manu Exp $ DISTNAME= arcticfox-39.0 PKGREVISION= 2 @@ -60,6 +60,11 @@ CONFIGURE_ARGS+= --with-system-zlib TOOL_DEPENDS+= yasm>=1.1:../../devel/yasm .endif +PLIST_VARS+= nopowerpc +.if ${MACHINE_ARCH} != "powerpc" +PLIST.nopowerpc= yes +.endif + CONFIGURE_DIRS= ${WRKDIR}/build CONFIGURE_SCRIPT= ${WRKSRC}/configure @@ -129,4 +134,5 @@ BUILDLINK_API_DEPENDS.libevent+= libevent>=1.1 .include "../../x11/libXt/buildlink3.mk" .include "../../x11/pixman/buildlink3.mk" #.include "../../mk/jpeg.buildlink3.mk" +.include "../../mk/atomic64.mk" .include "../../mk/bsd.pkg.mk" diff --git a/www/arcticfox/PLIST b/www/arcticfox/PLIST index c244f5a8d2e..1177c4de682 100644 --- a/www/arcticfox/PLIST +++ b/www/arcticfox/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.1 2022/02/05 20:51:07 nia Exp $ +@comment $NetBSD: PLIST,v 1.2 2022/05/01 00:36:10 manu Exp $ bin/arcticfox include/${PKGNAME}/AbstractMediaDecoder.h include/${PKGNAME}/ActiveLayerTracker.h @@ -255,7 +255,7 @@ include/${PKGNAME}/SharedDecoderManager.h include/${PKGNAME}/SharedSurface.h include/${PKGNAME}/SharedSurfaceEGL.h include/${PKGNAME}/SharedSurfaceGL.h -include/${PKGNAME}/SkiaGLGlue.h +${PLIST.nopowerpc}include/${PKGNAME}/SkiaGLGlue.h include/${PKGNAME}/SoftwareVsyncSource.h include/${PKGNAME}/SoftwareWebMVideoDecoder.h include/${PKGNAME}/SourceBufferContentManager.h @@ -2289,7 +2289,7 @@ include/${PKGNAME}/mozilla/gfx/DrawTargetTiled.h include/${PKGNAME}/mozilla/gfx/Filters.h include/${PKGNAME}/mozilla/gfx/Helpers.h include/${PKGNAME}/mozilla/gfx/HelpersCairo.h -include/${PKGNAME}/mozilla/gfx/HelpersSkia.h +${PLIST.nopowerpc}include/${PKGNAME}/mozilla/gfx/HelpersSkia.h include/${PKGNAME}/mozilla/gfx/Logging.h include/${PKGNAME}/mozilla/gfx/Matrix.h include/${PKGNAME}/mozilla/gfx/NumericTools.h diff --git a/www/arcticfox/distinfo b/www/arcticfox/distinfo index 9ebd75767af..cc4d3215190 100644 --- a/www/arcticfox/distinfo +++ b/www/arcticfox/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.1 2022/02/05 20:51:07 nia Exp $ +$NetBSD: distinfo,v 1.2 2022/05/01 00:36:10 manu Exp $ BLAKE2s (arcticfox-39.0.tar.gz) = 87d8ae46ac9b5f0acebbad1962150804781f29fc9eb2bf1f77442624e4a4fea0 SHA512 (arcticfox-39.0.tar.gz) = 38fc4fa73c5c7d3ea692b2411580c519f6296622ea7f1cd86e784a3cc4d630a76ee699bb7f679a8dabd302c90bb4b7d786e853bed459b6e3b1efac59740db564 @@ -7,3 +7,15 @@ SHA1 (patch-configure.in) = a5c3c9534a776e61d761139161617ca6279db838 SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 38cf700d07d468526e16cfe63d434c4752da8cc5 SHA1 (patch-media_libcubeb_src_cubeb.c) = b3c4bd8146e2f7146baf1c2050260f7629cdb09a SHA1 (patch-media_libcubeb_src_moz.build) = e98b39b6272b58d4183c526f36987ea239fadd5d +SHA1 (patch-xpcom_reflect_xptcall_genstubs.pl) = f120ff2d52f6875505da477b12e32c40bbf005a2 +SHA1 (patch-xpcom_reflect_xptcall_md_unix_moz.build) = 0c6b7851dce1d3554be6fa4d11032e7bc0d47b19 +SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_arm_netbsd.cpp) = a8f9e48088a09479fe510ca5be584ad71ecaa2f4 +SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_ppc_netbsd.cpp) = 42a82f3fe496b49afada33537b1b1d3dda2e5bf5 +SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs_arm_netbsd.cpp) = e576e939f7acb44bd7c0fc07d0dddf5bf745d6a6 +SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs_netbsd_m68k.cpp) = 47bc75f3991964b50f0b2bdb615004cbdcae145f +SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_linux.cpp) = 60cb1b77d6737663ff4509ef00348ee32ba81e2d +SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_netbsd.cpp) = 879f5d69d3c52a8ce6bea9373bd32f7c7762c03b +SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_netbsd.cpp) = e8d15f754261c5e0f99b49b63ba01e339625eb59 +SHA1 (patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_openbsd.cpp) = ef5b28501ebc4e462998f2f28edd883353579789 +SHA1 (patch-xpcom_reflect_xptcall_xptcprivate.h) = 42d708c26969b6749fa14ed790c17dd96ca879d4 +SHA1 (patch-xpcom_reflect_xptcall_xptcstubsdecl.inc) = 0747a1b666494dec8d6005ade8cae8f33e6c928d diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_genstubs.pl b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_genstubs.pl new file mode 100644 index 00000000000..a886025b0af --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_genstubs.pl @@ -0,0 +1,18 @@ +$NetBSD: patch-xpcom_reflect_xptcall_genstubs.pl,v 1.1 2022/05/01 00:36:10 manu Exp $ + +Bring NetBSD in line with other BSDs. +Not sure abut the impact, but there is no reason to single it out + +--- xpcom/reflect/xptcall/genstubs.pl.orig 2022-04-18 02:30:50.477763337 +0000 ++++ xpcom/reflect/xptcall/genstubs.pl 2022-04-17 05:04:03.346183732 +0000 +@@ -43,9 +43,9 @@ + print OUTFILE "* 0 is QueryInterface\n"; + print OUTFILE "* 1 is AddRef\n"; + print OUTFILE "* 2 is Release\n"; + print OUTFILE "*/\n"; +-print OUTFILE "#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__) && !defined(__FreeBSD__))\n"; ++print OUTFILE "#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__))\n"; + for($i = 0; $i < $entry_count; $i++) { + print OUTFILE "NS_IMETHOD Stub",$i+3,"();\n"; + } + print OUTFILE "#else\n"; diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_moz.build b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_moz.build new file mode 100644 index 00000000000..98155cca2f6 --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_moz.build @@ -0,0 +1,29 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_moz.build,v 1.1 2022/05/01 00:36:10 manu Exp $ + +- NetBSD/macppc reports OS_TEST as powerpc and not macppc +- Use OpenBSD/powerpc MD stubs for NetBSD/powerpc + +--- xpcom/reflect/xptcall/md/unix/moz.build.orig 2022-04-18 02:30:50.487997116 +0000 ++++ xpcom/reflect/xptcall/md/unix/moz.build 2022-04-23 01:07:48.540922360 +0000 +@@ -214,15 +214,16 @@ + 'xptcstubs_asm_ppc64_linux.S', + 'xptcstubs_ppc64_linux.cpp', + ] + +-if CONFIG['OS_TEST'] in ('macppc', 'bebox', 'ofppc', 'prep', 'amigappc'): ++# OpenBSD/powerpc MD code is up to date and fits NetBSD ++if CONFIG['OS_TEST'] in ('powerpc', 'macppc', 'bebox', 'ofppc', 'prep', 'amigappc'): + if CONFIG['OS_ARCH'] == 'NetBSD': + SOURCES += [ +- 'xptcinvoke_asm_ppc_netbsd.s', +- 'xptcinvoke_ppc_netbsd.cpp', +- 'xptcstubs_asm_ppc_netbsd.s', +- 'xptcstubs_ppc_netbsd.cpp', ++ 'xptcinvoke_asm_ppc_openbsd.S', ++ 'xptcinvoke_ppc_openbsd.cpp', ++ 'xptcstubs_asm_ppc_openbsd.S', ++ 'xptcstubs_ppc_openbsd.cpp', + ] + + if CONFIG['OS_ARCH'] == 'OpenBSD' and CONFIG['OS_TEST'] == 'powerpc': + SOURCES += [ diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_arm_netbsd.cpp b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_arm_netbsd.cpp new file mode 100644 index 00000000000..1e0f944e5ed --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_arm_netbsd.cpp @@ -0,0 +1,18 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_arm_netbsd.cpp,v 1.1 2022/05/01 00:36:10 manu Exp $ + +Update to fit current code + +--- xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp.orig 2022-04-18 02:30:50.498239249 +0000 ++++ xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp 2022-04-18 01:08:05.177311630 +0000 +@@ -100,9 +100,10 @@ + uint32_t fn_count; + uint32_t fn_copy; + }; + +-XPTC_PUBLIC_API(nsresult) ++ ++EXPORT_XPCOM_API(nsresult) + XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex, + uint32_t paramCount, nsXPTCVariant* params) + { + uint32_t result; diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_ppc_netbsd.cpp b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_ppc_netbsd.cpp new file mode 100644 index 00000000000..19f3a253e66 --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_ppc_netbsd.cpp @@ -0,0 +1,15 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcinvoke_ppc_netbsd.cpp,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Update to fit current code + +--- xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp.orig 2022-04-18 02:30:50.508558042 +0000 ++++ xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp 2022-04-17 06:36:22.117064855 +0000 +@@ -109,7 +109,7 @@ + } + } + + extern "C" +-XPTC_PUBLIC_API(nsresult) ++EXPORT_XPCOM_API(nsresult) + XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex, + uint32_t paramCount, nsXPTCVariant* params); diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_arm_netbsd.cpp b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_arm_netbsd.cpp new file mode 100644 index 00000000000..35319633b50 --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_arm_netbsd.cpp @@ -0,0 +1,55 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs_arm_netbsd.cpp,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Update to fit current code + +--- xpcom/reflect/xptcall/md/unix/xptcstubs_arm_netbsd.cpp.orig 2022-04-18 02:30:50.518733769 +0000 ++++ xpcom/reflect/xptcall/md/unix/xptcstubs_arm_netbsd.cpp 2022-04-18 01:57:51.824233012 +0000 +@@ -5,29 +5,28 @@ + + /* Implement shared vtbl methods. */ + + #include "xptcprivate.h" ++#include "xptiprivate.h" + + nsresult ATTRIBUTE_USED + PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, uint32_t* args) + { + #define PARAM_BUFFER_COUNT 16 + + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = nullptr; +- nsIInterfaceInfo* iface_info = nullptr; +- const nsXPTMethodInfo* info; ++ const nsXPTMethodInfo* info = nullptr; + uint8_t paramCount; + uint8_t i; + nsresult result = NS_ERROR_FAILURE; + + NS_ASSERTION(self,"no self"); + +- self->GetInterfaceInfo(&iface_info); +- NS_ASSERTION(iface_info,"no interface info"); +- +- iface_info->GetMethodInfo(uint16_t(methodIndex), &info); +- NS_ASSERTION(info,"no interface info"); ++ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (!info) ++ return NS_ERROR_UNEXPECTED; + + paramCount = info->GetParamCount(); + + // setup variant array pointer +@@ -70,11 +69,9 @@ + break; + } + } + +- result = self->CallMethod((uint16_t)methodIndex, info, dispatchParams); +- +- NS_RELEASE(iface_info); ++ result = self->mOuter->CallMethod((uint16_t)methodIndex, info, dispatchParams); + + if(dispatchParams != paramBuffer) + delete [] dispatchParams; + diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_netbsd_m68k.cpp b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_netbsd_m68k.cpp new file mode 100644 index 00000000000..c9aabdc8921 --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_netbsd_m68k.cpp @@ -0,0 +1,56 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs_netbsd_m68k.cpp,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Update to fit current code + +--- xpcom/reflect/xptcall/md/unix/xptcstubs_netbsd_m68k.cpp.orig 2022-04-18 02:30:50.528949644 +0000 ++++ xpcom/reflect/xptcall/md/unix/xptcstubs_netbsd_m68k.cpp 2022-04-18 01:58:14.671629551 +0000 +@@ -5,8 +5,9 @@ + + /* Implement shared vtbl methods. */ + + #include "xptcprivate.h" ++#include "xptiprivate.h" + + #if !defined(__NetBSD__) || !defined(__m68k__) + #error This code is for NetBSD/m68k only + #endif +@@ -18,21 +19,19 @@ + #define PARAM_BUFFER_COUNT 16 + + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = nullptr; +- nsIInterfaceInfo* iface_info = nullptr; +- const nsXPTMethodInfo* info; ++ const nsXPTMethodInfo* info = nullptr; + uint8_t paramCount; + uint8_t i; + nsresult result = NS_ERROR_FAILURE; + + NS_ASSERTION(self,"no self"); + +- self->GetInterfaceInfo(&iface_info); +- NS_ASSERTION(iface_info,"no interface info"); +- +- iface_info->GetMethodInfo(uint16_t(methodIndex), &info); +- NS_ASSERTION(info,"no interface info"); ++ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (!info) ++ return NS_ERROR_UNEXPECTED; + + paramCount = info->GetParamCount(); + + // setup variant array pointer +@@ -79,11 +78,9 @@ + break; + } + } + +- result = self->CallMethod((uint16_t)methodIndex, info, dispatchParams); +- +- NS_RELEASE(iface_info); ++ result = self->mOuter->CallMethod((uint16_t)methodIndex, info, dispatchParams); + + if(dispatchParams != paramBuffer) + delete [] dispatchParams; + diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_linux.cpp b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_linux.cpp new file mode 100644 index 00000000000..7767fea2206 --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_linux.cpp @@ -0,0 +1,20 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_linux.cpp,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Update to fit current code + +--- xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_linux.cpp.orig 2022-04-18 02:30:50.539220748 +0000 ++++ xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_linux.cpp 2022-04-18 01:42:03.669133784 +0000 +@@ -48,8 +48,13 @@ + NS_ASSERTION(self,"no self"); + + self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info); + NS_ASSERTION(info,"no method info"); ++ if (!info) ++ return NS_ERROR_UNEXPECTED; ++ ++ iface_info->GetMethodInfo(uint16_t(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); + if (! info) + return NS_ERROR_UNEXPECTED; + + paramCount = info->GetParamCount(); diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_netbsd.cpp b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_netbsd.cpp new file mode 100644 index 00000000000..e15cc2ef586 --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_netbsd.cpp @@ -0,0 +1,57 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs_ppc_netbsd.cpp,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Update to fit current code + +--- xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_netbsd.cpp.orig 2022-04-18 02:30:50.549401901 +0000 ++++ xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_netbsd.cpp 2022-04-18 01:58:29.047568136 +0000 +@@ -5,8 +5,9 @@ + + // Implement shared vtbl methods. + + #include "xptcprivate.h" ++#include "xptiprivate.h" + + // The Linux/PPC ABI (aka PPC/SYSV ABI) passes the first 8 integral + // parameters and the first 8 floating point parameters in registers + // (r3-r10 and f1-f8), no stack space is allocated for these by the +@@ -35,24 +36,18 @@ + double *fprData) + { + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = nullptr; +- nsIInterfaceInfo* iface_info = nullptr; +- const nsXPTMethodInfo* info; ++ const nsXPTMethodInfo* info = nullptr; + uint32_t paramCount; + uint32_t i; + nsresult result = NS_ERROR_FAILURE; + + NS_ASSERTION(self,"no self"); + +- self->GetInterfaceInfo(&iface_info); +- NS_ASSERTION(iface_info,"no interface info"); +- if (! iface_info) +- return NS_ERROR_UNEXPECTED; +- +- iface_info->GetMethodInfo(uint16_t(methodIndex), &info); ++ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info); + NS_ASSERTION(info,"no method info"); +- if (! info) ++ if (!info) + return NS_ERROR_UNEXPECTED; + + paramCount = info->GetParamCount(); + +@@ -143,11 +138,9 @@ + break; + } + } + +- result = self->CallMethod((uint16_t) methodIndex, info, dispatchParams); +- +- NS_RELEASE(iface_info); ++ result = self->mOuter->CallMethod((uint16_t) methodIndex, info, dispatchParams); + + if (dispatchParams != paramBuffer) + delete [] dispatchParams; + diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_netbsd.cpp b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_netbsd.cpp new file mode 100644 index 00000000000..e458274937b --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_netbsd.cpp @@ -0,0 +1,56 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_netbsd.cpp,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Update to fit current code + +--- xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_netbsd.cpp.orig 2022-04-18 02:30:50.559501293 +0000 ++++ xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_netbsd.cpp 2022-04-18 01:58:41.453538297 +0000 +@@ -5,8 +5,9 @@ + + /* Implement shared vtbl methods. */ + + #include "xptcprivate.h" ++#include "xptiprivate.h" + + #if defined(sparc) || defined(__sparc__) + + extern "C" nsresult ATTRIBUTE_USED +@@ -22,21 +23,19 @@ + #define PARAM_BUFFER_COUNT 16 + + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = nullptr; +- nsIInterfaceInfo* iface_info = nullptr; +- const nsXPTMethodInfo* info; ++ const nsXPTMethodInfo* info = nullptr; + uint8_t paramCount; + uint8_t i; + nsresult result = NS_ERROR_FAILURE; + + NS_ASSERTION(self,"no self"); + +- self->GetInterfaceInfo(&iface_info); +- NS_ASSERTION(iface_info,"no interface info"); +- +- iface_info->GetMethodInfo(uint16_t(methodIndex), &info); +- NS_ASSERTION(info,"no interface info"); ++ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (!info) ++ return NS_ERROR_UNEXPECTED; + + paramCount = info->GetParamCount(); + + // setup variant array pointer +@@ -82,11 +81,9 @@ + break; + } + } + +- result = self->CallMethod((uint16_t)methodIndex, info, dispatchParams); +- +- NS_RELEASE(iface_info); ++ result = self->oMouter->CallMethod((uint16_t)methodIndex, info, dispatchParams); + + if(dispatchParams != paramBuffer) + delete [] dispatchParams; + diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_openbsd.cpp b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_openbsd.cpp new file mode 100644 index 00000000000..d191f1f0553 --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_openbsd.cpp @@ -0,0 +1,56 @@ +$NetBSD: patch-xpcom_reflect_xptcall_md_unix_xptcstubs_sparc_openbsd.cpp,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Update to fit current code + +--- xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_openbsd.cpp.orig 2022-04-18 02:30:50.569629711 +0000 ++++ xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_openbsd.cpp 2022-04-18 01:58:53.309449484 +0000 +@@ -5,8 +5,9 @@ + + /* Implement shared vtbl methods. */ + + #include "xptcprivate.h" ++#include "xptiprivate.h" + + #if defined(sparc) || defined(__sparc__) + + extern "C" nsresult ATTRIBUTE_USED +@@ -22,21 +23,19 @@ + #define PARAM_BUFFER_COUNT 16 + + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = nullptr; +- nsIInterfaceInfo* iface_info = nullptr; +- const nsXPTMethodInfo* info; ++ const nsXPTMethodInfo* info = nullptr; + uint8_t paramCount; + uint8_t i; + nsresult result = NS_ERROR_FAILURE; + + NS_ASSERTION(self,"no self"); + +- self->GetInterfaceInfo(&iface_info); +- NS_ASSERTION(iface_info,"no interface info"); +- +- iface_info->GetMethodInfo(uint16_t(methodIndex), &info); +- NS_ASSERTION(info,"no interface info"); ++ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info); ++ NS_ASSERTION(info,"no method info"); ++ if (!info) ++ return NS_ERROR_UNEXPECTED; + + paramCount = info->GetParamCount(); + + // setup variant array pointer +@@ -85,11 +84,9 @@ + break; + } + } + +- result = self->CallMethod((uint16_t)methodIndex, info, dispatchParams); +- +- NS_RELEASE(iface_info); ++ result = self->mOuter->CallMethod((uint16_t)methodIndex, info, dispatchParams); + + if(dispatchParams != paramBuffer) + delete [] dispatchParams; + diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_xptcprivate.h b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_xptcprivate.h new file mode 100644 index 00000000000..c0fd5872412 --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_xptcprivate.h @@ -0,0 +1,29 @@ +$NetBSD: patch-xpcom_reflect_xptcall_xptcprivate.h,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Bring NetBSD in line with other BSDs. +Not sure abut the impact, but there is no reason to single it out + +--- xpcom/reflect/xptcall/xptcprivate.h.orig 2022-04-18 02:30:50.579699047 +0000 ++++ xpcom/reflect/xptcall/xptcprivate.h 2022-04-17 05:04:46.979926191 +0000 +@@ -13,9 +13,9 @@ + #include "mozilla/Attributes.h" + + class xptiInterfaceEntry; + +-#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__) && !defined(__FreeBSD__)) ++#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__)) + #define STUB_ENTRY(n) NS_IMETHOD Stub##n() = 0; + #else + #define STUB_ENTRY(n) NS_IMETHOD Stub##n(uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t) = 0; + #endif +@@ -30,9 +30,9 @@ + + #undef STUB_ENTRY + #undef SENTINEL_ENTRY + +-#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__) && !defined(__FreeBSD__)) ++#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__)) + #define STUB_ENTRY(n) NS_IMETHOD Stub##n() override; + #else + #define STUB_ENTRY(n) NS_IMETHOD Stub##n(uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t,uint64_t) override; + #endif diff --git a/www/arcticfox/patches/patch-xpcom_reflect_xptcall_xptcstubsdecl.inc b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_xptcstubsdecl.inc new file mode 100644 index 00000000000..8e0f4330c9a --- /dev/null +++ b/www/arcticfox/patches/patch-xpcom_reflect_xptcall_xptcstubsdecl.inc @@ -0,0 +1,18 @@ +$NetBSD: patch-xpcom_reflect_xptcall_xptcstubsdecl.inc,v 1.1 2022/05/01 00:36:11 manu Exp $ + +Bring NetBSD in line with other BSDs. +Not sure abut the impact, but there is no reason to single it out + +--- xpcom/reflect/xptcall/xptcstubsdecl.inc.orig 2022-04-18 02:30:50.590253192 +0000 ++++ xpcom/reflect/xptcall/xptcstubsdecl.inc 2022-04-17 07:00:09.391086988 +0000 +@@ -7,9 +7,9 @@ + * 0 is QueryInterface + * 1 is AddRef + * 2 is Release + */ +-#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__) && !defined(__FreeBSD__)) ++#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__) && !defined(__FreeBSD__) || !defined(__NetBSD__)) + NS_IMETHOD Stub3(); + NS_IMETHOD Stub4(); + NS_IMETHOD Stub5(); + NS_IMETHOD Stub6(); |