firefox: Update to 98.0.2 Changelog: 98.0.2: Fixed * Fixed an issue preventing users from typing in Address Bar after opening new tab and pressing cmd + enter (bug 1757376) * Fixed an issue causing some users to crash in out-of-memory conditions (bug 1757618) * Fixed an issue in session history which caused some sites to fail to load ( bug 1758664) * Fixed an add-on specific compatibility issue (bug 1759162) 98.0.1: Changed * Yandex and Mail.ru have been removed as optional search providers in the drop-down search menu in Firefox. If you previously installed a customized version of Firefox with Yandex or Mail.ru, offered through partner distribution channels, this release removes those customizations, including add-ons and default bookmarks. Where applicable, your browser will revert back to default settings, as offered by Mozilla. All other releases of Firefox remain unaffected by the change. 98.0: New * Firefox has a new optimized download flow. Instead of prompting every time, files will download automatically. However, they can still be opened from the downloads panel with just one click. Easy! More information You'll find you have a number of options, including: + Always Open Similar Files: Make Firefox automatically open downloaded files of the same type with the system default application. + Show In Folder: Open the folder that contains your downloaded files. + Go To Download Page: Surfaces the download reference page even after leaving the site or closing the tab. + Copy Download Link: Copy the download link to share it, save it, or for any applicable use. + Delete: You can now delete downloaded files directly from the download panel and other download views using the context menu. + Remove From History: Remove a file from your list of downloaded files. + Clear Preview Panel: Clear the list of downloaded items in the preview panel that opens when you start a download. In this release, you'll also see that Firefox no longer asks what to do for each file by default. You won't be prompted to choose a helper application or save to disk before downloading a file unless you have changed your download action setting for that type of file. And now, every time you start a download, Firefox will automatically bring up the Downloads panel by default. This means you'll experience minimal interruptions and easily find your downloaded files. Plus, to avoid having to close it several times, the panel won't show if there are multiple downloads in progress. You can now click on a file in the Downloads panel to open it even before it has finished downloading. Firefox will open the file as soon as it is available. Firefox: saving you time and helping you get back to what you care about! Any files you download will be immediately saved on your disk. Depending on the current configuration, they'll be saved in your preferred download folder, or you'll be asked to select a location for each download. Windows and Linux users will find their downloaded files in the destination folder. They'll no longer be put in the Temp folder. * Firefox allows users to choose from a number of built-in search engines to set as their default. In this release, some users who had previously configured a default engine might notice their default search engine has changed since Mozilla was unable to secure formal permission to continue including certain search engines in Firefox. Fixed * Now, you can set a default app to open a file type. Choose the application you want to use to open files of a specific type in your Firefox settings. * After updating to Firefox version 98, "Always ask" download actions will now be reset. * Various security fixes. Security fixes: #CVE-2022-26383: Browser window spoof using fullscreen mode #CVE-2022-26384: iframe allow-scripts sandbox bypass #CVE-2022-26387: Time-of-check time-of-use bug when verifying add-on signatures #CVE-2022-26381: Use-after-free in text reflows #CVE-2022-26382: Autofill Text could be exfiltrated via side-channel attacks #CVE-2022-26385: Use-after-free in thread shutdown #CVE-2022-0843: Memory safety bugs fixed in Firefox 98diff -r1.514 -r1.515 pkgsrc/www/firefox/Makefile
(ryoon)
@@ -1,178 +1,177 @@ | @@ -1,178 +1,177 @@ | |||
1 | # $NetBSD: Makefile,v 1.514 2022/03/28 10:59:30 tnn Exp $ | 1 | # $NetBSD: Makefile,v 1.515 2022/04/03 00:22:30 ryoon Exp $ | |
2 | 2 | |||
3 | FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR} | 3 | FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR} | |
4 | MOZ_BRANCH= 97.0 | 4 | MOZ_BRANCH= 98.0 | |
5 | MOZ_BRANCH_MINOR= .2 | 5 | MOZ_BRANCH_MINOR= .2 | |
6 | 6 | |||
7 | DISTNAME= firefox-${FIREFOX_VER}.source | 7 | DISTNAME= firefox-${FIREFOX_VER}.source | |
8 | PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//} | 8 | PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//} | |
9 | PKGREVISION= 1 | |||
10 | CATEGORIES= www | 9 | CATEGORIES= www | |
11 | MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/} | 10 | MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/} | |
12 | EXTRACT_SUFX= .tar.xz | 11 | EXTRACT_SUFX= .tar.xz | |
13 | 12 | |||
14 | NODEJSKIT= nodejs-output-95.0.tgz | 13 | NODEJSKIT= nodejs-output-95.0.tgz | |
15 | DISTFILES= ${DEFAULT_DISTFILES} ${NODEJSKIT} | 14 | DISTFILES= ${DEFAULT_DISTFILES} ${NODEJSKIT} | |
16 | SITES.${NODEJSKIT}= ${MASTER_SITE_LOCAL} | 15 | SITES.${NODEJSKIT}= ${MASTER_SITE_LOCAL} | |
17 | 16 | |||
18 | MAINTAINER= ryoon@NetBSD.org | 17 | MAINTAINER= ryoon@NetBSD.org | |
19 | HOMEPAGE= https://www.mozilla.org/en-US/firefox/ | 18 | HOMEPAGE= https://www.mozilla.org/en-US/firefox/ | |
20 | COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//}) | 19 | COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//}) | |
21 | LICENSE= mpl-1.1 | 20 | LICENSE= mpl-1.1 | |
22 | 21 | |||
23 | # -------- BEFORE UPDATING THIS PACKAGE PLEASE READ & UNDERSTAND: ------- | 22 | # -------- BEFORE UPDATING THIS PACKAGE PLEASE READ & UNDERSTAND: ------- | |
24 | # | 23 | # | |
25 | # This package works around a (stupid) build time dependency on nodejs | 24 | # This package works around a (stupid) build time dependency on nodejs | |
26 | # (which is not available for all architectures and unnecessary for the | 25 | # (which is not available for all architectures and unnecessary for the | |
27 | # real build). To do this, it places some additional burden on the | 26 | # real build). To do this, it places some additional burden on the | |
28 | # maintainer. | 27 | # maintainer. | |
29 | # | 28 | # | |
30 | # While working on the package, please make sure you have | 29 | # While working on the package, please make sure you have | |
31 | # | 30 | # | |
32 | # FIREFOX_MAINTAINER=yes | 31 | # FIREFOX_MAINTAINER=yes | |
33 | # | 32 | # | |
34 | # set in your build environment. | 33 | # set in your build environment. | |
35 | # When the package is ready for commit (but before commit), do: | 34 | # When the package is ready for commit (but before commit), do: | |
36 | # | 35 | # | |
37 | # make maintainer-files | 36 | # make maintainer-files | |
38 | # | 37 | # | |
39 | # This will do another round (depending on state of your work dir at this | 38 | # This will do another round (depending on state of your work dir at this | |
40 | # moment) of one or two builds and generate a cache of all output that | 39 | # moment) of one or two builds and generate a cache of all output that | |
41 | # nodejs generates during a build. | 40 | # nodejs generates during a build. | |
42 | # | 41 | # | |
43 | # When this is done, just commit the results (they will be in the files/ | 42 | # When this is done, just commit the results (they will be in the files/ | |
44 | # directory). | 43 | # directory). | |
45 | # | 44 | # | |
46 | # ----------------------------------------------------------------------- | 45 | # ----------------------------------------------------------------------- | |
47 | 46 | |||
48 | UNLIMIT_RESOURCES+= datasize virtualsize | 47 | UNLIMIT_RESOURCES+= datasize virtualsize | |
49 | 48 | |||
50 | WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//} | 49 | WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//} | |
51 | 50 | |||
52 | MOZILLA_DIR= # empty | 51 | MOZILLA_DIR= # empty | |
53 | 52 | |||
54 | # Note: In --enable-chrome-format=flat case, | 53 | # Note: In --enable-chrome-format=flat case, | |
55 | # when updating remember to conditionalise about-background.png in PLIST | 54 | # when updating remember to conditionalise about-background.png in PLIST | |
56 | CONFIGURE_ARGS+= --enable-application=browser | 55 | CONFIGURE_ARGS+= --enable-application=browser | |
57 | 56 | |||
58 | #CFLAGS+= -I${PREFIX}/include/nspr | 57 | #CFLAGS+= -I${PREFIX}/include/nspr | |
59 | # for lang/gcc6 | 58 | # for lang/gcc6 | |
60 | CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS | 59 | CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS | |
61 | CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS | 60 | CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS | |
62 | 61 | |||
63 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE} | 62 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE} | |
64 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib | 63 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib | |
65 | LDFLAGS.DragonFly+= -lplc4 -lnspr4 | 64 | LDFLAGS.DragonFly+= -lplc4 -lnspr4 | |
66 | LDFLAGS.FreeBSD+= -lplc4 -lnspr4 | 65 | LDFLAGS.FreeBSD+= -lplc4 -lnspr4 | |
67 | LDFLAGS.Linux+= -lnspr4 | 66 | LDFLAGS.Linux+= -lnspr4 | |
68 | LDFLAGS.SunOS+= -lm | 67 | LDFLAGS.SunOS+= -lm | |
69 | 68 | |||
70 | # XXX not sure how to test this! likely unnecessary | 69 | # XXX not sure how to test this! likely unnecessary | |
71 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container | 70 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container | |
72 | # For RLBox WASM sandbox. Sync condition with mozilla-common.mk | 71 | # For RLBox WASM sandbox. Sync condition with mozilla-common.mk | |
73 | .if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "i386" | 72 | .if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "i386" | |
74 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox | 73 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox | |
75 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox-bin | 74 | NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/firefox-bin | |
76 | .endif | 75 | .endif | |
77 | 76 | |||
78 | # Avoid ld "invalid section index" errors. | 77 | # Avoid ld "invalid section index" errors. | |
79 | BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections | 78 | BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections | |
80 | BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections | 79 | BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections | |
81 | BUILDLINK_TRANSFORM.SunOS+= rm:-pie | 80 | BUILDLINK_TRANSFORM.SunOS+= rm:-pie | |
82 | 81 | |||
83 | # Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366 | 82 | # Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366 | |
84 | BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager | 83 | BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager | |
85 | 84 | |||
86 | SUBST_CLASSES+= dfly_malloc_h | 85 | SUBST_CLASSES+= dfly_malloc_h | |
87 | SUBST_STAGE.dfly_malloc_h= pre-configure | 86 | SUBST_STAGE.dfly_malloc_h= pre-configure | |
88 | SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd | 87 | SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd | |
89 | SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g' | 88 | SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g' | |
90 | SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c | 89 | SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c | |
91 | 90 | |||
92 | .include "mozilla-common.mk" | 91 | .include "mozilla-common.mk" | |
93 | .include "options.mk" | 92 | .include "options.mk" | |
94 | 93 | |||
95 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py | 94 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py | |
96 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py | 95 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py | |
97 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py | 96 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py | |
98 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py | 97 | CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py | |
99 | 98 | |||
100 | CHECK_WRKREF_SKIP+= lib/${MOZILLA}/omni.ja | 99 | CHECK_WRKREF_SKIP+= lib/${MOZILLA}/omni.ja | |
101 | 100 | |||
102 | MOZILLA= ${PKGBASE} | 101 | MOZILLA= ${PKGBASE} | |
103 | 102 | |||
104 | .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding) | 103 | .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding) | |
105 | MOZILLA_NAME= Firefox | 104 | MOZILLA_NAME= Firefox | |
106 | MOZILLA_BRANDING= official | 105 | MOZILLA_BRANDING= official | |
107 | .else | 106 | .else | |
108 | MOZILLA_NAME= Browser | 107 | MOZILLA_NAME= Browser | |
109 | MOZILLA_BRANDING= unofficial | 108 | MOZILLA_BRANDING= unofficial | |
110 | .endif | 109 | .endif | |
111 | 110 | |||
112 | pre-configure: | 111 | pre-configure: | |
113 | cd ${WRKSRC} && autoconf | 112 | cd ${WRKSRC} && autoconf | |
114 | cd ${WRKSRC}/js/src && autoconf | 113 | cd ${WRKSRC}/js/src && autoconf | |
115 | cd ${WRKSRC} && mkdir ${OBJDIR} | 114 | cd ${WRKSRC} && mkdir ${OBJDIR} | |
116 | cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars | 115 | cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars | |
117 | # Do not fetch Rust Cargo file via network during build | 116 | # Do not fetch Rust Cargo file via network during build | |
118 | .if !defined(FIREFOX_MAINTAINER) | 117 | .if !defined(FIREFOX_MAINTAINER) | |
119 | mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR} | 118 | mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR} | |
120 | .endif | 119 | .endif | |
121 | 120 | |||
122 | .if defined(FIREFOX_MAINTAINER) | 121 | .if defined(FIREFOX_MAINTAINER) | |
123 | # Create files needed only by the firefox maintainer when updating | 122 | # Create files needed only by the firefox maintainer when updating | |
124 | # the package | 123 | # the package | |
125 | # XXX - manually removing the .*_done files is wrong! | 124 | # XXX - manually removing the .*_done files is wrong! | |
126 | .PHONY: build-list | 125 | .PHONY: build-list | |
127 | build-list: | 126 | build-list: | |
128 | cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \ | 127 | cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \ | |
129 | find . -type f | sort > ${OUT:Q} | 128 | find . -type f | sort > ${OUT:Q} | |
130 | 129 | |||
131 | NODE_LIST= "${WRKDIR}/node.list" | 130 | NODE_LIST= "${WRKDIR}/node.list" | |
132 | NO_NODE_LIST= "${WRKDIR}/no-node.list" | 131 | NO_NODE_LIST= "${WRKDIR}/no-node.list" | |
133 | NODE_FILES= "${WRKDIR}/node.flist" | 132 | NODE_FILES= "${WRKDIR}/node.flist" | |
134 | 133 | |||
135 | .PHONY: maintainer-files | 134 | .PHONY: maintainer-files | |
136 | maintainer-files: | 135 | maintainer-files: | |
137 | rm -f ${FILESDIR}/node-wrapper.sh | 136 | rm -f ${FILESDIR}/node-wrapper.sh | |
138 | V=$$( node -v ) && \ | 137 | V=$$( node -v ) && \ | |
139 | printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \ | 138 | printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \ | |
140 | > ${FILESDIR}/node-wrapper.sh && \ | 139 | > ${FILESDIR}/node-wrapper.sh && \ | |
141 | chmod 0755 ${FILESDIR}/node-wrapper.sh | 140 | chmod 0755 ${FILESDIR}/node-wrapper.sh | |
142 | rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done | 141 | rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done | |
143 | ${MAKE} MAINTAINER_INTERNAL=yes build | 142 | ${MAKE} MAINTAINER_INTERNAL=yes build | |
144 | ${MAKE} MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list | 143 | ${MAKE} MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list | |
145 | ${MAKE} OUT="${NODE_LIST}" build-list | 144 | ${MAKE} OUT="${NODE_LIST}" build-list | |
146 | ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \ | 145 | ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \ | |
147 | ${AWK} \ | 146 | ${AWK} \ | |
148 | '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \ | 147 | '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \ | |
149 | > "${NODE_FILES}" | 148 | > "${NODE_FILES}" | |
150 | cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \ | 149 | cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \ | |
151 | -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz | 150 | -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz | |
152 | .endif | 151 | .endif | |
153 | 152 | |||
154 | post-build: | 153 | post-build: | |
155 | ${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \ | 154 | ${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \ | |
156 | -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \ | 155 | -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \ | |
157 | -e 's|@FIREFOX_ICON@|${MOZILLA}|g' \ | 156 | -e 's|@FIREFOX_ICON@|${MOZILLA}|g' \ | |
158 | < ${FILESDIR}/desktop.in \ | 157 | < ${FILESDIR}/desktop.in \ | |
159 | > ${WRKDIR}/desktop | 158 | > ${WRKDIR}/desktop | |
160 | 159 | |||
161 | INSTALLATION_DIRS+= share/applications | 160 | INSTALLATION_DIRS+= share/applications | |
162 | 161 | |||
163 | post-install: | 162 | post-install: | |
164 | ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA} | 163 | ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA} | |
165 | ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \ | 164 | ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \ | |
166 | ${DESTDIR}${PREFIX}/bin/${MOZILLA} | 165 | ${DESTDIR}${PREFIX}/bin/${MOZILLA} | |
167 | ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA} | 166 | ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA} | |
168 | ${INSTALL_DATA} ${WRKDIR}/desktop \ | 167 | ${INSTALL_DATA} ${WRKDIR}/desktop \ | |
169 | ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop | 168 | ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop | |
170 | .for i in 16 22 24 32 48 64 128 256 | 169 | .for i in 16 22 24 32 48 64 128 256 | |
171 | ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps | 170 | ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps | |
172 | ${INSTALL_DATA} ${WRKSRC}/browser/branding/${MOZILLA_BRANDING}/default${i}.png \ | 171 | ${INSTALL_DATA} ${WRKSRC}/browser/branding/${MOZILLA_BRANDING}/default${i}.png \ | |
173 | ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/${MOZILLA}.png | 172 | ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/${MOZILLA}.png | |
174 | .endfor | 173 | .endfor | |
175 | 174 | |||
176 | .include "../../graphics/hicolor-icon-theme/buildlink3.mk" | 175 | .include "../../graphics/hicolor-icon-theme/buildlink3.mk" | |
177 | .include "../../sysutils/desktop-file-utils/desktopdb.mk" | 176 | .include "../../sysutils/desktop-file-utils/desktopdb.mk" | |
178 | .include "../../mk/bsd.pkg.mk" | 177 | .include "../../mk/bsd.pkg.mk" |
@@ -1,43 +1,44 @@ | @@ -1,43 +1,44 @@ | |||
1 | $NetBSD: distinfo,v 1.462 2022/03/06 04:51:48 ryoon Exp $ | 1 | $NetBSD: distinfo,v 1.463 2022/04/03 00:22:30 ryoon Exp $ | |
2 | 2 | |||
3 | BLAKE2s (firefox-97.0.2.source.tar.xz) = 9807fb791d04a9f73008ba50395ac67ddfb5222f48aa7e6d76af7da62d7aa824 | 3 | BLAKE2s (firefox-98.0.2.source.tar.xz) = 9304273e193d3f8ed5d5d4ddd5cc6dcfcd510a19fb8e9f4721ee94e8ee288e8f | |
4 | SHA512 (firefox-97.0.2.source.tar.xz) = efbf33723f5979025454b6cc183927afb4bc72a51c00b5d45940122da596b8ac99080f3a6a59f5dd85a725e356349ec57e7eba1c36cdab7d55a28b04895d274c | 4 | SHA512 (firefox-98.0.2.source.tar.xz) = b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e | |
5 | Size (firefox-97.0.2.source.tar.xz) = 491844932 bytes | 5 | Size (firefox-98.0.2.source.tar.xz) = 479907760 bytes | |
6 | BLAKE2s (nodejs-output-95.0.tgz) = c44b37d3605524a49157002f01c29f568f04194b0e635bc312de7ffdeb9a74c9 | 6 | BLAKE2s (nodejs-output-95.0.tgz) = c44b37d3605524a49157002f01c29f568f04194b0e635bc312de7ffdeb9a74c9 | |
7 | SHA512 (nodejs-output-95.0.tgz) = 2faf326f4e100b66f8597c365cc2eb5d0eee26aae92a7e2446891f2178041aa71ba16eae37000acacd43a657025ec11c18db73b112f5c49cc21cdb882da6d798 | 7 | SHA512 (nodejs-output-95.0.tgz) = 2faf326f4e100b66f8597c365cc2eb5d0eee26aae92a7e2446891f2178041aa71ba16eae37000acacd43a657025ec11c18db73b112f5c49cc21cdb882da6d798 | |
8 | Size (nodejs-output-95.0.tgz) = 200627 bytes | 8 | Size (nodejs-output-95.0.tgz) = 200627 bytes | |
9 | SHA1 (patch-aa) = 00561a3c0e5ba884145777c2abae64644bf40097 | 9 | SHA1 (patch-aa) = 00561a3c0e5ba884145777c2abae64644bf40097 | |
10 | SHA1 (patch-browser_app_profile_firefox.js) = 89cea0a66457c96ad0b94aaa524aa5942ad781d0 | 10 | SHA1 (patch-browser_app_profile_firefox.js) = 89cea0a66457c96ad0b94aaa524aa5942ad781d0 | |
11 | SHA1 (patch-build_moz.configure_rust.configure) = 25ddfacd29cebbc6db005dbe61a2a7446d480678 | 11 | SHA1 (patch-build_moz.configure_rust.configure) = 25ddfacd29cebbc6db005dbe61a2a7446d480678 | |
12 | SHA1 (patch-config_gcc-stl-wrapper.template.h) = 9d1f15ff487efa9202114d19ed5668b4e7aa032a | 12 | SHA1 (patch-config_gcc-stl-wrapper.template.h) = 9d1f15ff487efa9202114d19ed5668b4e7aa032a | |
13 | SHA1 (patch-config_makefiles_rust.mk) = fa9f0f59a179cae2562a76110fada49039490fb8 | 13 | SHA1 (patch-config_makefiles_rust.mk) = fa9f0f59a179cae2562a76110fada49039490fb8 | |
14 | SHA1 (patch-dom_base_nsAttrName.h) = ac7ba441a3b27df2855cf2673eea36b1cb44ad49 | 14 | SHA1 (patch-dom_base_nsAttrName.h) = ac7ba441a3b27df2855cf2673eea36b1cb44ad49 | |
15 | SHA1 (patch-gfx_angle_checkout_src_common_third__party_smhasher_src_PMurHash.cpp) = e458c9c8dc66edc69c1874734af28a77fc5e3993 | 15 | SHA1 (patch-gfx_angle_checkout_src_common_third__party_smhasher_src_PMurHash.cpp) = e458c9c8dc66edc69c1874734af28a77fc5e3993 | |
16 | SHA1 (patch-gfx_angle_checkout_src_compiler_translator_InfoSink.h) = b2adce9e65662283a11b6dcff40e95523e940045 | 16 | SHA1 (patch-gfx_angle_checkout_src_compiler_translator_InfoSink.h) = b2adce9e65662283a11b6dcff40e95523e940045 | |
17 | SHA1 (patch-gfx_skia_skia_src_core_SkCpu.cpp) = 36218819254f3681b9c717d652ea78c9f20d49ad | 17 | SHA1 (patch-gfx_skia_skia_src_core_SkCpu.cpp) = 36218819254f3681b9c717d652ea78c9f20d49ad | |
18 | SHA1 (patch-gfx_wr_swgl_build.rs) = df6ebfaabb4d27994e59a9d0eaf12c7cf08415fb | 18 | SHA1 (patch-gfx_wr_swgl_build.rs) = df6ebfaabb4d27994e59a9d0eaf12c7cf08415fb | |
19 | SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 4a6606da590cfb8d855bde58b9c6f90e98d0870c | 19 | SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 4a6606da590cfb8d855bde58b9c6f90e98d0870c | |
20 | SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = 35d20981d33ccdb1d8ffb8039e48798777f11658 | 20 | SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = 35d20981d33ccdb1d8ffb8039e48798777f11658 | |
21 | SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = 6cdd0fe60455eab8f9846257c2bfea207f19478b | 21 | SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = 6cdd0fe60455eab8f9846257c2bfea207f19478b | |
22 | SHA1 (patch-js_src_jit_GenerateAtomicOperations.py) = a4f30476f9d8a1889538f27a244b319fde8e4309 | |||
22 | SHA1 (patch-js_src_jit_ProcessExecutableMemory.cpp) = fad103cc698f9828ad58f742231984ec2bc27605 | 23 | SHA1 (patch-js_src_jit_ProcessExecutableMemory.cpp) = fad103cc698f9828ad58f742231984ec2bc27605 | |
23 | SHA1 (patch-js_src_jit_arm64_vixl_MozCpu-vixl.cpp) = fdc522e3fb626b1b8a2ebf19ad60bfc25dfa4183 | 24 | SHA1 (patch-js_src_jit_arm64_vixl_MozCpu-vixl.cpp) = fdc522e3fb626b1b8a2ebf19ad60bfc25dfa4183 | |
24 | SHA1 (patch-js_src_util_NativeStack.cpp) = a0a16d8d8d78d3cc3f4d2a508586f1a7821f7dba | 25 | SHA1 (patch-js_src_util_NativeStack.cpp) = a0a16d8d8d78d3cc3f4d2a508586f1a7821f7dba | |
25 | SHA1 (patch-js_src_vm_ArrayBufferObject.cpp) = 0501fdcae11568ae4ea78e0d2f6b3750b7a67d47 | 26 | SHA1 (patch-js_src_vm_ArrayBufferObject.cpp) = 0501fdcae11568ae4ea78e0d2f6b3750b7a67d47 | |
26 | SHA1 (patch-libwebrtc.diff) = ad0b7b4ef00cc43d08eb5e94a4d600fd62cd6783 | 27 | SHA1 (patch-libwebrtc.diff) = ad0b7b4ef00cc43d08eb5e94a4d600fd62cd6783 | |
27 | SHA1 (patch-media_ffvpx_libavutil_arm_bswap.h) = de58daa0fd23d4fec50426602b65c9ea5862558a | 28 | SHA1 (patch-media_ffvpx_libavutil_arm_bswap.h) = de58daa0fd23d4fec50426602b65c9ea5862558a | |
28 | SHA1 (patch-media_libcubeb_src_cubeb__alsa.c) = 2ef11da83c90c41490db4c0d9809c3e1826b488a | 29 | SHA1 (patch-media_libcubeb_src_cubeb__alsa.c) = 2ef11da83c90c41490db4c0d9809c3e1826b488a | |
29 | SHA1 (patch-media_libcubeb_src_moz.build) = e4e64a1135cf4157ae5b6f7c1710ebd076953479 | 30 | SHA1 (patch-media_libcubeb_src_moz.build) = e4e64a1135cf4157ae5b6f7c1710ebd076953479 | |
30 | SHA1 (patch-media_libpng_pngpriv.h) = c8084332560017cd7c9b519b61d125fa28af0dbc | 31 | SHA1 (patch-media_libpng_pngpriv.h) = c8084332560017cd7c9b519b61d125fa28af0dbc | |
31 | SHA1 (patch-media_libtheora_lib_info.c) = f6dbf536d73859a1ff78304c2e9f6a6f74dac01f | 32 | SHA1 (patch-media_libtheora_lib_info.c) = f6dbf536d73859a1ff78304c2e9f6a6f74dac01f | |
32 | SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc) = 2e951d7d91934751608e99628fc144632d8a3b5c | 33 | SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc) = 2e951d7d91934751608e99628fc144632d8a3b5c | |
33 | SHA1 (patch-modules_fdlibm_src_math__private.h) = 6ae3b0077b4a8c6088c35769fa1972cfc44ea9c1 | 34 | SHA1 (patch-modules_fdlibm_src_math__private.h) = 6ae3b0077b4a8c6088c35769fa1972cfc44ea9c1 | |
34 | SHA1 (patch-mozglue_misc_Uptime.cpp) = daefe25ef1ebc8e4d3735017b9e8ac68c4710a00 | 35 | SHA1 (patch-mozglue_misc_Uptime.cpp) = daefe25ef1ebc8e4d3735017b9e8ac68c4710a00 | |
35 | SHA1 (patch-nsprpub_pr_src_pthreads_ptsynch.c) = 13e512c7ee9fa1e14ba415d62fa853e5fbfc91c0 | 36 | SHA1 (patch-nsprpub_pr_src_pthreads_ptsynch.c) = 13e512c7ee9fa1e14ba415d62fa853e5fbfc91c0 | |
36 | SHA1 (patch-security_nss_lib_freebl_mpi_mpi.c) = a7cd867916524770609d1c307a65b315b88456f4 | 37 | SHA1 (patch-security_nss_lib_freebl_mpi_mpi.c) = a7cd867916524770609d1c307a65b315b88456f4 | |
37 | SHA1 (patch-third__party_libwebrtc_system__wrappers_source_cpu__features__linux.cc) = b90e22b50879f7adcc1da3a993f52c0701b720f8 | 38 | SHA1 (patch-third__party_libwebrtc_system__wrappers_source_cpu__features__linux.cc) = b90e22b50879f7adcc1da3a993f52c0701b720f8 | |
38 | SHA1 (patch-toolkit_components_terminator_nsTerminator.cpp) = 1c1397f6177728cf9deb2b74708069b9d09509c3 | 39 | SHA1 (patch-toolkit_components_terminator_nsTerminator.cpp) = 1c1397f6177728cf9deb2b74708069b9d09509c3 | |
39 | SHA1 (patch-toolkit_modules_subprocess_subprocess__shared__unix.js) = 22a39e54e042ab2270a3cb54e4e307c8900cad12 | 40 | SHA1 (patch-toolkit_modules_subprocess_subprocess__shared__unix.js) = 22a39e54e042ab2270a3cb54e4e307c8900cad12 | |
40 | SHA1 (patch-toolkit_mozapps_installer_packager.mk) = 706635b76a7b525794aba95e95544f09e18bb662 | 41 | SHA1 (patch-toolkit_mozapps_installer_packager.mk) = 706635b76a7b525794aba95e95544f09e18bb662 | |
41 | SHA1 (patch-widget_gtk_DMABufSurface.cpp) = 72bc9554f075734df12e1748fb8965dce8318de5 | 42 | SHA1 (patch-widget_gtk_DMABufSurface.cpp) = 72bc9554f075734df12e1748fb8965dce8318de5 | |
42 | SHA1 (patch-xpcom_base_nscore.h) = 1ac4d34d3c9e80bc1ac966c6c84cb320bc0fa1ec | 43 | SHA1 (patch-xpcom_base_nscore.h) = 1ac4d34d3c9e80bc1ac966c6c84cb320bc0fa1ec | |
43 | SHA1 (patch-xpcom_reflect_xptcall_md_unix_moz.build) = f7e491c7b62a5332066473bfc815e0050672a372 | 44 | SHA1 (patch-xpcom_reflect_xptcall_md_unix_moz.build) = f7e491c7b62a5332066473bfc815e0050672a372 |
$NetBSD: patch-js_src_jit_GenerateAtomicOperations.py,v 1.1 2022/04/03 00:22:30 ryoon Exp $
* Fix build under 32-bit architecture, for example NetBSD/i386.
From: https://bugzilla.mozilla.org/show_bug.cgi?id=1756347
--- js/src/jit/GenerateAtomicOperations.py.orig 2022-03-03 09:53:14.696789711 +0000
+++ js/src/jit/GenerateAtomicOperations.py
@@ -10,6 +10,7 @@ import buildconfig
is_64bit = "JS_64BIT" in buildconfig.defines
cpu_arch = buildconfig.substs["CPU_ARCH"]
+is_gcc = buildconfig.substs["CC_TYPE"] == "gcc"
def fmt_insn(s):
@@ -19,21 +20,21 @@ def fmt_insn(s):
def gen_seqcst(fun_name):
if cpu_arch in ("x86", "x86_64"):
return r"""
- inline void %(fun_name)s() {
+ INLINE_ATTR void %(fun_name)s() {
asm volatile ("mfence\n\t" ::: "memory");
}""" % {
"fun_name": fun_name,
}
if cpu_arch == "aarch64":
return r"""
- inline void %(fun_name)s() {
+ INLINE_ATTR void %(fun_name)s() {
asm volatile ("dmb ish\n\t" ::: "memory");
}""" % {
"fun_name": fun_name,
}
if cpu_arch == "arm":
return r"""
- inline void %(fun_name)s() {
+ INLINE_ATTR void %(fun_name)s() {
asm volatile ("dmb sy\n\t" ::: "memory");
}""" % {
"fun_name": fun_name,
@@ -63,7 +64,7 @@ def gen_load(fun_name, cpp_type, size, b
if barrier:
insns += fmt_insn("mfence")
return """
- inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) {
%(cpp_type)s res;
asm volatile (%(insns)s
: [res] "=r" (res)
@@ -91,7 +92,7 @@ def gen_load(fun_name, cpp_type, size, b
if barrier:
insns += fmt_insn("dmb ish")
return """
- inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) {
%(cpp_type)s res;
asm volatile (%(insns)s
: [res] "=r" (res)
@@ -117,7 +118,7 @@ def gen_load(fun_name, cpp_type, size, b
if barrier:
insns += fmt_insn("dmb sy")
return """
- inline %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(const %(cpp_type)s* arg) {
%(cpp_type)s res;
asm volatile (%(insns)s
: [res] "=r" (res)
@@ -154,7 +155,7 @@ def gen_store(fun_name, cpp_type, size,
if barrier:
insns += fmt_insn("mfence")
return """
- inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
asm volatile (%(insns)s
:
: [addr] "r" (addr), [val] "r"(val)
@@ -180,7 +181,7 @@ def gen_store(fun_name, cpp_type, size,
if barrier:
insns += fmt_insn("dmb ish")
return """
- inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
asm volatile (%(insns)s
:
: [addr] "r" (addr), [val] "r"(val)
@@ -204,7 +205,7 @@ def gen_store(fun_name, cpp_type, size,
if barrier:
insns += fmt_insn("dmb sy")
return """
- inline void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR void %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
asm volatile (%(insns)s
:
: [addr] "r" (addr), [val] "r"(val)
@@ -235,7 +236,7 @@ def gen_exchange(fun_name, cpp_type, siz
assert size == 64
insns += fmt_insn("xchgq %[val], (%[addr])")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
asm volatile (%(insns)s
: [val] "+r" (val)
: [addr] "r" (addr)
@@ -266,7 +267,7 @@ def gen_exchange(fun_name, cpp_type, siz
insns += fmt_insn("cbnz %w[scratch], 0b")
insns += fmt_insn("dmb ish")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
%(cpp_type)s res;
uint32_t scratch;
asm volatile (%(insns)s
@@ -297,7 +298,7 @@ def gen_exchange(fun_name, cpp_type, siz
insns += fmt_insn("beq 0b")
insns += fmt_insn("dmb sy")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
%(cpp_type)s res;
uint32_t scratch;
asm volatile (%(insns)s
@@ -321,7 +322,7 @@ def gen_cmpxchg(fun_name, cpp_type, size
# Use a +A constraint to load `oldval` into EDX:EAX as input/output.
# `newval` is loaded into ECX:EBX.
return r"""
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
%(cpp_type)s oldval,
%(cpp_type)s newval) {
asm volatile ("lock; cmpxchg8b (%%[addr])\n\t"
@@ -337,7 +338,7 @@ def gen_cmpxchg(fun_name, cpp_type, size
}
if cpu_arch == "arm" and size == 64:
return r"""
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
%(cpp_type)s oldval,
%(cpp_type)s newval) {
uint32_t oldval0 = oldval & 0xffff'ffff;
@@ -380,7 +381,7 @@ def gen_cmpxchg(fun_name, cpp_type, size
assert size == 64
insns += fmt_insn("lock; cmpxchgq %[newval], (%[addr])")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
%(cpp_type)s oldval,
%(cpp_type)s newval) {
asm volatile (%(insns)s
@@ -425,7 +426,7 @@ def gen_cmpxchg(fun_name, cpp_type, size
insns += fmt_insn("cbnz %w[scratch], 0b")
insns += fmt_insn("1: dmb ish")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
%(cpp_type)s oldval,
%(cpp_type)s newval) {
%(cpp_type)s res, scratch;
@@ -466,7 +467,7 @@ def gen_cmpxchg(fun_name, cpp_type, size
insns += fmt_insn("beq 0b")
insns += fmt_insn("1: dmb sy")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr,
%(cpp_type)s oldval,
%(cpp_type)s newval) {
%(cpp_type)s res, scratch;
@@ -501,7 +502,7 @@ def gen_fetchop(fun_name, cpp_type, size
assert size == 64
insns += fmt_insn("lock; xaddq %[val], (%[addr])")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
asm volatile (%(insns)s
: [val] "+&r" (val)
: [addr] "r" (addr)
@@ -539,7 +540,7 @@ def gen_fetchop(fun_name, cpp_type, size
insns = insns.replace("OP", op)
insns += fmt_insn("jnz 0b")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
%(cpp_type)s res, scratch;
asm volatile (%(insns)s
: [res] "=&a" (res), [scratch] "=&r" (scratch)
@@ -581,7 +582,7 @@ def gen_fetchop(fun_name, cpp_type, size
insns += fmt_insn("cbnz %w[scratch2], 0b")
insns += fmt_insn("dmb ish")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
%(cpp_type)s res;
uintptr_t scratch1, scratch2;
asm volatile (%(insns)s
@@ -621,7 +622,7 @@ def gen_fetchop(fun_name, cpp_type, size
insns += fmt_insn("beq 0b")
insns += fmt_insn("dmb sy")
return """
- inline %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
+ INLINE_ATTR %(cpp_type)s %(fun_name)s(%(cpp_type)s* addr, %(cpp_type)s val) {
%(cpp_type)s res;
uintptr_t scratch1, scratch2;
asm volatile (%(insns)s
@@ -665,12 +666,12 @@ def gen_copy(fun_name, cpp_type, size, u
insns += fmt_insn("str %x[scratch], [%x[dst], OFFSET]")
elif cpu_arch == "arm":
if size == 1:
- insns += fmt_insn("ldrb %[scratch], [%[src], OFFSET]")
- insns += fmt_insn("strb %[scratch], [%[dst], OFFSET]")
+ insns += fmt_insn("ldrb %[scratch], [%[src], #OFFSET]")
+ insns += fmt_insn("strb %[scratch], [%[dst], #OFFSET]")
else:
assert size == 4
- insns += fmt_insn("ldr %[scratch], [%[src], OFFSET]")
- insns += fmt_insn("str %[scratch], [%[dst], OFFSET]")
+ insns += fmt_insn("ldr %[scratch], [%[src], #OFFSET]")
+ insns += fmt_insn("str %[scratch], [%[dst], #OFFSET]")
else:
raise Exception("Unexpected arch")
insns = insns.replace("OFFSET", str(offset * size))
@@ -681,7 +682,7 @@ def gen_copy(fun_name, cpp_type, size, u
offset -= 1
return """
- inline void %(fun_name)s(uint8_t* dst, const uint8_t* src) {
+ INLINE_ATTR void %(fun_name)s(uint8_t* dst, const uint8_t* src) {
%(cpp_type)s* dst_ = reinterpret_cast<%(cpp_type)s*>(dst);
const %(cpp_type)s* src_ = reinterpret_cast<const %(cpp_type)s*>(src);
%(cpp_type)s scratch;
@@ -853,6 +854,13 @@ def generate_atomics_header(c_out):
"constexpr size_t JS_GENERATED_ATOMICS_WORDSIZE = " + str(wordsize) + ";\n"
)
+ # Work around a GCC issue on 32-bit x86 by adding MOZ_NEVER_INLINE.
+ # See bug 1756347.
+ if is_gcc and cpu_arch == "x86":
+ contents = contents.replace("INLINE_ATTR", "MOZ_NEVER_INLINE inline")
+ else:
+ contents = contents.replace("INLINE_ATTR", "inline")
+
c_out.write(
HEADER_TEMPLATE
% {