Index: head/www/firefox-esr/Makefile =================================================================== --- head/www/firefox-esr/Makefile (revision 563865) +++ head/www/firefox-esr/Makefile (revision 563866) @@ -1,63 +1,64 @@ # Created by: Alan Eldridge # $FreeBSD$ PORTNAME= firefox DISTVERSION= 78.7.0 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build2/source PKGNAMESUFFIX= -esr DISTFILES= ${DISTNAME}esr.source${EXTRACT_SUFX} MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla BUILD_DEPENDS= nspr>=4.26:devel/nspr \ nss>=3.56:security/nss \ icu>=67.1,1:devel/icu \ libevent>=2.1.8:devel/libevent \ harfbuzz>=2.6.6:print/harfbuzz \ graphite2>=1.3.14:graphics/graphite2 \ png>=1.6.35:graphics/png \ libvpx>=1.8.2:multimedia/libvpx \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ nasm:devel/nasm \ yasm:devel/yasm \ zip:archivers/zip USE_GECKO= gecko CPE_PRODUCT= ${PORTNAME}_esr CONFLICTS_INSTALL= firefox USE_MOZILLA= -sqlite CFLAGS_powerpc64le= -DSQLITE_BYTEORDER=1234 USES= tar:xz FIREFOX_ICON= ${MOZILLA}.png FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png FIREFOX_DESKTOP= ${MOZSRC}/taskcluster/docker/${MOZILLA}-snap/${MOZILLA}.desktop MOZ_OPTIONS= --enable-application=browser \ --enable-official-branding .include "${.CURDIR}/../../www/firefox/Makefile.options" post-patch: @${REINPLACE_CMD} -e 's/%u/%U/' -e '/X-MultipleArgs/d' \ -e '/^Icon/s/=.*/=${FIREFOX_ICON:R}/' \ ${FIREFOX_DESKTOP} @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/browser/app/nsBrowserApp.cpp pre-configure: (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13) (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13) post-install: ${INSTALL_DATA} ${FIREFOX_DESKTOP} ${STAGEDIR}${PREFIX}/share/applications/ ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps ${LN} -sf ${FIREFOX_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${FIREFOX_ICON} .include Index: head/www/firefox-esr/files/patch-bug1690152 =================================================================== --- head/www/firefox-esr/files/patch-bug1690152 (nonexistent) +++ head/www/firefox-esr/files/patch-bug1690152 (revision 563866) @@ -0,0 +1,97 @@ + +# HG changeset patch +# User Cameron Kaiser +# Date 1612231460 0 +# Node ID 579a66fd796690fb752485215b2edaa6167ebf16 +# Parent a00504e040bfd34d01c74d478beb9d308ec085be +Bug 1690152 - on ppc64 properly skip parameter slots if we overflow GPRs while still having FPRs to burn. r=tcampbell + +Differential Revision: https://phabricator.services.mozilla.com/D103724 + +diff --git a/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp b/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp +--- xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp ++++ xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp +@@ -86,27 +86,37 @@ extern "C" void invoke_copy_to_stack(uin + case nsXPTType::T_WCHAR: value = s->val.wc; break; + default: value = (uint64_t) s->val.p; break; + } + } + + if (!s->IsIndirect() && s->type == nsXPTType::T_DOUBLE) { + if (nr_fpr < FPR_COUNT) { + fpregs[nr_fpr++] = s->val.d; +- nr_gpr++; ++ // Even if we have enough FPRs, still skip space in ++ // the parameter area if we ran out of placeholder GPRs. ++ if (nr_gpr < GPR_COUNT) { ++ nr_gpr++; ++ } else { ++ d++; ++ } + } else { + *((double *)d) = s->val.d; + d++; + } + } + else if (!s->IsIndirect() && s->type == nsXPTType::T_FLOAT) { + if (nr_fpr < FPR_COUNT) { + // Single-precision floats are passed in FPRs too. + fpregs[nr_fpr++] = s->val.f; +- nr_gpr++; ++ if (nr_gpr < GPR_COUNT) { ++ nr_gpr++; ++ } else { ++ d++; ++ } + } else { + #ifdef __LITTLE_ENDIAN__ + *((float *)d) = s->val.f; + #else + // Big endian needs adjustment to point to the least + // significant word. + float* p = (float*)d; + p++; +diff --git a/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp b/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp +--- xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp ++++ xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp +@@ -98,27 +98,37 @@ PrepareAndDispatch(nsXPTCStubBase * self + nr_gpr++; + else + ap++; + } + + if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { + if (nr_fpr < FPR_COUNT) { + dp->val.d = fpregs[nr_fpr++]; +- nr_gpr++; ++ // Even if we have enough FPRs, still skip space in ++ // the parameter area if we ran out of placeholder GPRs. ++ if (nr_gpr < GPR_COUNT) { ++ nr_gpr++; ++ } else { ++ ap++; ++ } + } else { + dp->val.d = *(double*)ap++; + } + continue; + } + if (!param.IsOut() && type == nsXPTType::T_FLOAT) { + if (nr_fpr < FPR_COUNT) { + // Single-precision floats are passed in FPRs too. + dp->val.f = (float)fpregs[nr_fpr++]; +- nr_gpr++; ++ if (nr_gpr < GPR_COUNT) { ++ nr_gpr++; ++ } else { ++ ap++; ++ } + } else { + #ifdef __LITTLE_ENDIAN__ + dp->val.f = *(float*)ap++; + #else + // Big endian needs adjustment to point to the least + // significant word. + float* p = (float*)ap; + p++; + Property changes on: head/www/firefox-esr/files/patch-bug1690152 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property