pkgsrc-Changes-HG archive

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

[pkgsrc/trunk]: pkgsrc/www/firefox firefox: Update to 100.0



details:   https://anonhg.NetBSD.org/pkgsrc/rev/08417d1e234b
branches:  trunk
changeset: 379239:08417d1e234b
user:      ryoon <ryoon%pkgsrc.org@localhost>
date:      Fri May 13 14:12:53 2022 +0000

description:
firefox: Update to 100.0

* Simplify some option logics.
* Add sunaudio and jack options as audio backends.

Changelog
100.0:
New

  * We now support captions/subtitles display on YouTube, Prime Video, and
    Netflix videos you watch in Picture-in-Picture. Just turn on the subtitles
    on the in-page video player, and they will appear in PiP.

  * Picture-in-Picture now also supports video captions on websites that use
    WebVTT (Web Video Text Track) format, like Coursera.org, Canadian
    Broadcasting Corporation, and many more.

  * On the first run after install, Firefox detects when its language does not
    match the operating system language and offers the user a choice between
    the two languages.

  * Firefox spell checking now checks spelling in multiple languages. To enable
    additional languages, select them in the text field's context menu.

  * HDR video is now supported in Firefox on Mac --- starting with YouTube!
    Firefox users on macOS 11+ (with HDR-compatible screens) can enjoy
    higher-fidelity video content. No need to manually flip any preferences to
    turn HDR video support on --- just make sure battery preferences are NOT set
    to "optimize video streaming while on battery".

  * Hardware accelerated AV1 video decoding is enabled on Windows with
    supported GPUs (Intel Gen 11+, AMD RDNA 2 Excluding Navi 24, GeForce 30).
    Installing the AV1 Video Extension from the Microsoft Store may also be
    required.

  * Video overlay is enabled on Windows for Intel GPUs, reducing power usage
    during video playback.

  * Improved fairness between painting and handling other events. This
    noticeably improves the performance of the volume slider on Twitch.

  * Scrollbars on Linux and Windows 11 won't take space by default. On Linux,
    users can change this in Settings. On Windows, Firefox follows the system
    setting (System Settings > Accessibility > Visual Effects > Always show
    scrollbars).

  * Firefox now supports credit card autofill and capture in the United
    Kingdom.

  * Firefox now ignores less restricted referrer policies --- including
    unsafe-url, no-referrer-when-downgrade, and origin-when-cross-origin
    --- for cross-site subresource/iframe requests to prevent privacy
    leaks from the referrer.


Fixed

  * Users can now choose preferred color schemes for websites. Theme authors
    can now make better decisions about which color scheme Firefox uses for
    menus. Web content appearance can now be changed in Settings.

  * Beginning in this release, the Firefox installer for Windows is signed with
    a SHA-256 digest, rather than SHA-1. Update KB4474419 is required for
    successful installation on a computer running Microsoft Windows 7. For more
    details about this update, visit the Microsoft Technical Support website.

  * In macOS 11+ we now only rasterize the fonts once per window. This means
    that opening a new tab is fast, and switching tabs in the same window is
    also fast. (There's still work to do to share fonts across windows, or to
    reduce the time it takes to initialize these fonts.)

  * The performance of deeply-nested display: grid elements is greatly
    improved.

  * Support for profiling multiple java threads has been added.

  * Soft-reloading a web page will no longer cause revalidation for all
    resources.

  * Non-vsync tasks are given more time to run, which improves behavior on
    Google docs and Twitch.

  * Geckoview APIs have been added to control the start/stop time of capturing
    a profile.

  * Various security fixes.

Changed

  * Firefox has a new focus indicator for links which replaces the old dotted
    outline with a solid blue outline. This change unifies the focus indicators
    across form fields and links, which makes it easier to identify the focused
    link, especially for users with low vision.

  * New users can now set Firefox as the default PDF handler when setting
    Firefox as their default browser.

  * Some websites might not work correctly in Firefox version 100 due to
    Firefox's new three-digit number. You can read about it in our blog post
    here!

    See the Mozilla Support article Difficulties opening or using a website in
    Firefox 100 for possible workarounds you can use. There, you will also find
    instructions for reporting a broken website so that Mozilla can help fix
    the problem.

Mozilla Foundation Security Advisory 2022-16
#CVE-2022-29914: Fullscreen notification bypass using popups
#CVE-2022-29909: Bypassing permission prompt in nested browsing contexts
#CVE-2022-29916: Leaking browser history with CSS variables
#CVE-2022-29911: iframe Sandbox bypass
#CVE-2022-29912: Reader mode bypassed SameSite cookies
#CVE-2022-29910: Firefox for Android forgot HTTP Strict Transport Security
 settings
#CVE-2022-29915: Leaking cross-origin redirect through the Performance API
#CVE-2022-29917: Memory safety bugs fixed in Firefox 100 and Firefox ESR 91.9
#CVE-2022-29918: Memory safety bugs fixed in Firefox 100

99.0.1:
Fixed

  * Fixed an issue for Windows users that prevented hardware video decoding on
    newer Intel drivers (bug 1762125)

  * Fixed an issue with text rendering in Bengali (bug 1763368)

  * Fixed a selection issue in the Download panel with drag and drop (bug
    1762723)

  * Fixed an issue preventing Zoom gallery mode for users who go to zoom.us
    URLs instead of subdomain.zoom.us URLs (bug 1763801)

99.0:
New

  * You can now toggle Narrate in ReaderMode with the keyboard shortcut "n."

  * You can find added support for search --- with or without diacritics ---
    in the PDF viewer.

  * The Linux sandbox has been strengthened: processes exposed to web content
    no longer have access to the X Window system (X11).

  * Firefox now supports credit card autofill and capture in Germany and
    France.

Fixed

  * Various security fixes.

Mozilla Foundation Security Advisory 2022-13
#CVE-2022-1097: Use-after-free in NSSToken objects
#CVE-2022-28281: Out of bounds write due to unexpected WebAuthN Extensions
#CVE-2022-28282: Use-after-free in DocumentL10n::TranslateDocument
#CVE-2022-28283: Missing security checks for fetching sourceMapURL
#CVE-2022-28284: Script could be executed via svg's use element
#CVE-2022-28285: Incorrect AliasSet used in JIT Codegen
#CVE-2022-28286: iframe contents could be rendered outside the border
#CVE-2022-28287: Text Selection could crash Firefox
#CVE-2022-24713: Denial of Service via complex regular expressions
#CVE-2022-28289: Memory safety bugs fixed in Firefox 99 and Firefox ESR 91.8
#CVE-2022-28288: Memory safety bugs fixed in Firefox 99

diffstat:

 www/firefox/Makefile                                             |    7 +-
 www/firefox/distinfo                                             |   14 +-
 www/firefox/options.mk                                           |   34 +-
 www/firefox/patches/patch-aa                                     |   26 -
 www/firefox/patches/patch-js_src_jit_GenerateAtomicOperations.py |  242 ----------
 www/firefox/patches/patch-media_libcubeb_src_cubeb__jack.cpp     |   15 +
 www/firefox/patches/patch-media_libcubeb_src_moz.build           |   14 +-
 www/firefox/patches/patch-toolkit_moz.configure                  |   57 ++
 8 files changed, 112 insertions(+), 297 deletions(-)

diffs (truncated from 523 to 300 lines):

diff -r 40e1d99a4ae1 -r 08417d1e234b www/firefox/Makefile
--- a/www/firefox/Makefile      Fri May 13 13:47:34 2022 +0000
+++ b/www/firefox/Makefile      Fri May 13 14:12:53 2022 +0000
@@ -1,12 +1,11 @@
-# $NetBSD: Makefile,v 1.516 2022/04/18 19:12:17 adam Exp $
+# $NetBSD: Makefile,v 1.517 2022/05/13 14:12:53 ryoon Exp $
 
 FIREFOX_VER=           ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
-MOZ_BRANCH=            98.0
-MOZ_BRANCH_MINOR=      .2
+MOZ_BRANCH=            100.0
+MOZ_BRANCH_MINOR=      
 
 DISTNAME=      firefox-${FIREFOX_VER}.source
 PKGNAME=       ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
-PKGREVISION=   1
 CATEGORIES=    www
 MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
 EXTRACT_SUFX=  .tar.xz
diff -r 40e1d99a4ae1 -r 08417d1e234b www/firefox/distinfo
--- a/www/firefox/distinfo      Fri May 13 13:47:34 2022 +0000
+++ b/www/firefox/distinfo      Fri May 13 14:12:53 2022 +0000
@@ -1,12 +1,11 @@
-$NetBSD: distinfo,v 1.463 2022/04/03 00:22:30 ryoon Exp $
+$NetBSD: distinfo,v 1.464 2022/05/13 14:12:53 ryoon Exp $
 
-BLAKE2s (firefox-98.0.2.source.tar.xz) = 9304273e193d3f8ed5d5d4ddd5cc6dcfcd510a19fb8e9f4721ee94e8ee288e8f
-SHA512 (firefox-98.0.2.source.tar.xz) = b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e
-Size (firefox-98.0.2.source.tar.xz) = 479907760 bytes
+BLAKE2s (firefox-100.0.source.tar.xz) = 4812f3e0fb74292ce21fa024ae27e8f3aa534b58cd0bbac8e01f67d7ccc42196
+SHA512 (firefox-100.0.source.tar.xz) = 29c56391c980209ff94c02a9aba18fe27bea188bdcbcf7fe0c0f27f61e823f4507a3ec343b27cb5285cf3901843e9cc4aca8e568beb623c4b69b7282e662b2aa
+Size (firefox-100.0.source.tar.xz) = 487179576 bytes
 BLAKE2s (nodejs-output-95.0.tgz) = c44b37d3605524a49157002f01c29f568f04194b0e635bc312de7ffdeb9a74c9
 SHA512 (nodejs-output-95.0.tgz) = 2faf326f4e100b66f8597c365cc2eb5d0eee26aae92a7e2446891f2178041aa71ba16eae37000acacd43a657025ec11c18db73b112f5c49cc21cdb882da6d798
 Size (nodejs-output-95.0.tgz) = 200627 bytes
-SHA1 (patch-aa) = 00561a3c0e5ba884145777c2abae64644bf40097
 SHA1 (patch-browser_app_profile_firefox.js) = 89cea0a66457c96ad0b94aaa524aa5942ad781d0
 SHA1 (patch-build_moz.configure_rust.configure) = 25ddfacd29cebbc6db005dbe61a2a7446d480678
 SHA1 (patch-config_gcc-stl-wrapper.template.h) = 9d1f15ff487efa9202114d19ed5668b4e7aa032a
@@ -19,7 +18,6 @@
 SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 4a6606da590cfb8d855bde58b9c6f90e98d0870c
 SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = 35d20981d33ccdb1d8ffb8039e48798777f11658
 SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = 6cdd0fe60455eab8f9846257c2bfea207f19478b
-SHA1 (patch-js_src_jit_GenerateAtomicOperations.py) = a4f30476f9d8a1889538f27a244b319fde8e4309
 SHA1 (patch-js_src_jit_ProcessExecutableMemory.cpp) = fad103cc698f9828ad58f742231984ec2bc27605
 SHA1 (patch-js_src_jit_arm64_vixl_MozCpu-vixl.cpp) = fdc522e3fb626b1b8a2ebf19ad60bfc25dfa4183
 SHA1 (patch-js_src_util_NativeStack.cpp) = a0a16d8d8d78d3cc3f4d2a508586f1a7821f7dba
@@ -27,7 +25,8 @@
 SHA1 (patch-libwebrtc.diff) = ad0b7b4ef00cc43d08eb5e94a4d600fd62cd6783
 SHA1 (patch-media_ffvpx_libavutil_arm_bswap.h) = de58daa0fd23d4fec50426602b65c9ea5862558a
 SHA1 (patch-media_libcubeb_src_cubeb__alsa.c) = 2ef11da83c90c41490db4c0d9809c3e1826b488a
-SHA1 (patch-media_libcubeb_src_moz.build) = e4e64a1135cf4157ae5b6f7c1710ebd076953479
+SHA1 (patch-media_libcubeb_src_cubeb__jack.cpp) = fc546c5e6582fd5eda64ba83287dfbbb3c9e229f
+SHA1 (patch-media_libcubeb_src_moz.build) = e027285ea24f2626b1328d4c6e9a31ed55445f99
 SHA1 (patch-media_libpng_pngpriv.h) = c8084332560017cd7c9b519b61d125fa28af0dbc
 SHA1 (patch-media_libtheora_lib_info.c) = f6dbf536d73859a1ff78304c2e9f6a6f74dac01f
 SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_linux_device__info__linux.cc) = 2e951d7d91934751608e99628fc144632d8a3b5c
@@ -38,6 +37,7 @@
 SHA1 (patch-third__party_libwebrtc_system__wrappers_source_cpu__features__linux.cc) = b90e22b50879f7adcc1da3a993f52c0701b720f8
 SHA1 (patch-toolkit_components_terminator_nsTerminator.cpp) = 1c1397f6177728cf9deb2b74708069b9d09509c3
 SHA1 (patch-toolkit_modules_subprocess_subprocess__shared__unix.js) = 22a39e54e042ab2270a3cb54e4e307c8900cad12
+SHA1 (patch-toolkit_moz.configure) = 8de54693dc47b0993f220cc5a04af98925de1fb5
 SHA1 (patch-toolkit_mozapps_installer_packager.mk) = 706635b76a7b525794aba95e95544f09e18bb662
 SHA1 (patch-widget_gtk_DMABufSurface.cpp) = 72bc9554f075734df12e1748fb8965dce8318de5
 SHA1 (patch-xpcom_base_nscore.h) = 1ac4d34d3c9e80bc1ac966c6c84cb320bc0fa1ec
diff -r 40e1d99a4ae1 -r 08417d1e234b www/firefox/options.mk
--- a/www/firefox/options.mk    Fri May 13 13:47:34 2022 +0000
+++ b/www/firefox/options.mk    Fri May 13 14:12:53 2022 +0000
@@ -1,15 +1,20 @@
-# $NetBSD: options.mk,v 1.65 2022/05/05 08:21:33 nia Exp $
+# $NetBSD: options.mk,v 1.66 2022/05/13 14:12:53 ryoon Exp $
 
 PKG_OPTIONS_VAR=       PKG_OPTIONS.firefox
 
 PKG_SUPPORTED_OPTIONS= official-mozilla-branding
 PKG_SUPPORTED_OPTIONS+=        debug debug-info mozilla-jemalloc webrtc
-PKG_SUPPORTED_OPTIONS+=        alsa pulseaudio dbus
+PKG_SUPPORTED_OPTIONS+=        dbus
+PKG_SUPPORTED_OPTIONS+=        alsa pulseaudio sunaudio jack
+
+PKG_SUGGESTED_OPTIONS+=        dbus
 
 .if ${OPSYS} == "Linux"
-PKG_SUGGESTED_OPTIONS+=        pulseaudio mozilla-jemalloc dbus webrtc
-.else
-PKG_SUGGESTED_OPTIONS+=        dbus
+PKG_SUGGESTED_OPTIONS+=        pulseaudio mozilla-jemalloc webrtc
+.endif
+
+.if ${OPSYS} == "NetBSD" || ${OPSYS} == "SunOS"
+PKG_SUGGESTED_OPTIONS+=        sunaudio
 .endif
 
 .if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} >= 090000
@@ -19,10 +24,8 @@
 .include "../../mk/bsd.options.mk"
 
 .if !empty(PKG_OPTIONS:Malsa)
-CONFIGURE_ARGS+=       --enable-alsa
+AUDIO_BACKENDS+=       alsa
 .include "../../audio/alsa-lib/buildlink3.mk"
-.else
-CONFIGURE_ARGS+=       --disable-alsa
 .endif
 
 .if !empty(PKG_OPTIONS:Mmozilla-jemalloc)
@@ -51,10 +54,8 @@
 .endif
 
 .if !empty(PKG_OPTIONS:Mpulseaudio)
+AUDIO_BACKENDS+=       pulseaudio
 .include "../../audio/pulseaudio/buildlink3.mk"
-CONFIGURE_ARGS+=       --enable-pulseaudio
-.else
-CONFIGURE_ARGS+=       --disable-pulseaudio
 .endif
 
 .if !empty(PKG_OPTIONS:Mdbus)
@@ -74,9 +75,20 @@
 CONFIGURE_ARGS+=       --with-branding=browser/branding/unofficial
 .endif
 
+.if !empty(PKG_OPTIONS:Msunaudio)
+AUDIO_BACKENDS+=       sunaudio
+.endif
+
+.if !empty(PKG_OPTIONS:Mjack)
+AUDIO_BACKENDS+=       jack
+.include "../../audio/jack/buildlink3.mk"
+.endif
+
 .if !empty(PKG_OPTIONS:Mwebrtc)
 .include "../../graphics/libv4l/buildlink3.mk"
 CONFIGURE_ARGS+=       --enable-webrtc
 .else
 CONFIGURE_ARGS+=       --disable-webrtc
 .endif
+
+CONFIGURE_ARGS+=       --audio-backends=${AUDIO_BACKENDS:ts,}
diff -r 40e1d99a4ae1 -r 08417d1e234b www/firefox/patches/patch-aa
--- a/www/firefox/patches/patch-aa      Fri May 13 13:47:34 2022 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-$NetBSD: patch-aa,v 1.67 2022/03/01 13:35:33 ryoon Exp $
-
-* Add Sun audio support
-
---- old-configure.in.orig      2022-02-02 21:01:47.000000000 +0000
-+++ old-configure.in
-@@ -1335,6 +1335,19 @@ fi
- AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
- AC_SUBST(MOZ_MACBUNDLE_ID)
- 
-+dnl ==================================
-+dnl = Check sunaudio availability
-+dnl ==================================
-+
-+dnl If using Solaris or NetBSD, ensure that sunaudio is available
-+case "$OS_TARGET" in
-+SunOS|NetBSD)
-+    MOZ_SUNAUDIO=1
-+    ;;
-+esac
-+
-+AC_SUBST(MOZ_SUNAUDIO)
-+
- dnl ========================================================
- dnl = Child Process Name for IPC
- dnl ========================================================
diff -r 40e1d99a4ae1 -r 08417d1e234b www/firefox/patches/patch-js_src_jit_GenerateAtomicOperations.py
--- a/www/firefox/patches/patch-js_src_jit_GenerateAtomicOperations.py  Fri May 13 13:47:34 2022 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-$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,



Home | Main Index | Thread Index | Old Index