Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Jun 2026 11:35:01 +0100
From:      Nuno Teixeira <eduardo@freebsd.org>
To:        Warner Losh <imp@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org,  dev-commits-src-main@freebsd.org, Faraz Vahedi <kfv@kfv.io>
Subject:   Re: git: 28cecfe27964 - main - libc: Restrict ATOMIC_VAR_INIT for C23 conformance
Message-ID:  <CAFDf7UKQc0gH2M=Vj-4FNzXKytQ%2B1jPM6x6hn962Tju6ekO8Gg@mail.gmail.com>
In-Reply-To: <6a35ddd3.22963.721d614@gitrepo.freebsd.org>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
Hello,

(poudriere-devel build at main-n286792-eafa181d51f7: Sat Jun 20)

I've found that ports-mgmt/portfmt started failing with:
...
FAILED: [code=1]
/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/_build/portscan/status.o
cc -std=gnu11 -O2 -g -W -Wall -Wextra -Wmissing-prototypes
-Wstrict-prototypes -Wwrite-strings -Wno-unused-parameter -flto=thin -O2
-pipe  -fstack-protector-strong -fno-strict-aliasing
 -Wno-strict-prototypes  -DPORTFMT_SUBPACKAGES=0 -MD -MF
/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/_build/portscan/status.o.d
-I/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/_build
-I/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6 -c -o
/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/_build/portscan/status.o
/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/portscan/status.c
/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/portscan/status.c:59:38:
warning: call to undeclared function 'ATOMIC_VAR_INIT'; ISO C99 and later
do not support implicit function declarations
[-Wimplicit-function-declaration]
   59 | static atomic_int status_requested = ATOMIC_VAR_INIT(0);
      |                                      ^
/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/portscan/status.c:59:38:
error: initializer element is not a compile-time constant
   59 | static atomic_int status_requested = ATOMIC_VAR_INIT(0);
      |                                      ^~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/portscan/status.c:60:32:
error: initializer element is not a compile-time constant
   60 | static atomic_size_t scanned = ATOMIC_VAR_INIT(0);
      |                                ^~~~~~~~~~~~~~~~~~
1 warning and 2 errors generated.
...

Same for devel/qt6-base:

...
FAILED: [code=1] src/corelib/CMakeFiles/Core.dir/io/forkfd_qt.c.o
/usr/bin/cc -DBACKTRACE_HEADER=\"execinfo.h\" -DCore_EXPORTS
-DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_CORE_LIB
-DQT_DEPRECATED_WARNINGS -DQT_EXPLICIT_QFILE_CONSTRUCTION_FROM_PATH
-DQT_LEAN_HEADERS=1 -
DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_CONTEXTLESS_CONNECT
-DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_JAVA_STYLE_ITERATORS
-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_QASCONST -DQT_NO_QEXCHANGE
-DQT_NO_QPAI
R -DQT_NO_QSNPRINTF -DQT_NO_SINGLE_ARGUMENT_QHASH_OVERLOAD=1
-DQT_NO_STD_FORMAT_SUPPORT -DQT_NO_USING_NAMESPACE -DQT_TYPESAFE_FLAGS
-DQT_USE_NODISCARD_FILE_OPEN -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE
-D_LA
RGEFILE_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST
-I/wrkdirs/usr/ports/devel/qt6-base/work/.build/src/corelib/Core_autogen/include
-I/wrkdirs/usr/ports/devel/qt6-base/work/.build/include -I/wrkd
irs/usr/ports/devel/qt6-base/work/.build/include/QtCore
-I/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib
-I/wrkdirs/usr/ports/devel/qt6-base/work/.build/src/corelib -I/wrkdirs/usr
/ports/devel/qt6-base/work/.build/src/corelib/global
-I/wrkdirs/usr/ports/devel/qt6-base/work/.build/src/corelib/kernel
-I/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/../3rdpart
y/tinycbor/src
-I/wrkdirs/usr/ports/devel/qt6-base/work/.build/include/QtCore/6.11.1
-I/wrkdirs/usr/ports/devel/qt6-base/work/.build/include/QtCore/6.11.1/QtCore
-I/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-ev
erywhere-src-6.11.1/src/corelib/../3rdparty/forkfd
-I/wrkdirs/usr/ports/devel/qt6-base/work/.build/src/corelib/.rcc
-I/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/mkspecs/freebsd-clang
-isy
stem /usr/local/include -isystem /usr/local/include/glib-2.0 -isystem
/usr/local/lib/glib-2.0/include -O2 -pipe  -fstack-protector-strong
-fno-strict-aliasing -pipe  -fstack-protector-strong -fno-strict-aliasing
 -DNDEBUG -O3 -std=gnu11 -fPIC -fvisibility=hidden -Wall -Wextra -pthread
-fcf-protection=full -ftrivial-auto-var-init=pattern
-fstack-protector-strong -fexceptions -MD -MT
src/corelib/CMakeFiles/Core.dir/io/fork
fd_qt.c.o -MF src/corelib/CMakeFiles/Core.dir/io/forkfd_qt.c.o.d -o
src/corelib/CMakeFiles/Core.dir/io/forkfd_qt.c.o -c
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/forkfd_qt
.c
In file included from
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/forkfd_qt.c:16:
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd.c:162:39:
warning: call to undeclared function 'ATOMIC_VAR_INIT'; ISO C99 and later
do not support i
mplicit function declarations [-Wimplicit-function-declaration]
  162 | static ffd_atomic_int forkfd_status = FFD_ATOMIC_INIT(0);
      |                                       ^
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:54:37:
note: expanded from macro 'FFD_ATOMIC_INIT'
   54 | #define FFD_ATOMIC_INIT(val)        ATOMIC_VAR_INIT(val)
      |                                     ^
In file included from
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/forkfd_qt.c:16:
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd.c:162:39:
error: initializer element is not a compile-time constant
  162 | static ffd_atomic_int forkfd_status = FFD_ATOMIC_INIT(0);
      |                                       ^~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:54:37:
note: expanded from macro 'FFD_ATOMIC_INIT'
   54 | #define FFD_ATOMIC_INIT(val)        ATOMIC_VAR_INIT(val)
      |                                     ^~~~~~~~~~~~~~~~~~~~
In file included from
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/forkfd_qt.c:16:
In file included from
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd.c:930:
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd_freebsd.c:45:45:
error: initializer element is not a compile-time constant
   45 | static ffd_atomic_int system_forkfd_state = FFD_ATOMIC_INIT(1);
      |                                             ^~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:54:37:
note: expanded from macro 'FFD_ATOMIC_INIT'
   54 | #define FFD_ATOMIC_INIT(val)        ATOMIC_VAR_INIT(val)
      |                                     ^~~~~~~~~~~~~~~~~~~~
1 warning and 2 errors generated.
...

Thanks,

Warner Losh <imp@freebsd.org> escreveu (sábado, 20/06/2026 à(s) 01:25):

> The branch main has been updated by imp:
>
> URL:
> https://cgit.FreeBSD.org/src/commit/?id=28cecfe27964fdb67497800f5dcd5d3e1033727f
>
> commit 28cecfe27964fdb67497800f5dcd5d3e1033727f
> Author:     Faraz Vahedi <kfv@kfv.io>
> AuthorDate: 2026-05-01 14:34:44 +0000
> Commit:     Warner Losh <imp@FreeBSD.org>
> CommitDate: 2026-06-20 00:23:28 +0000
>
>     libc: Restrict ATOMIC_VAR_INIT for C23 conformance
>
>     Omit `ATOMIC_VAR_INIT` when targeting C23, where it has been removed.
>     Retain it for earlier C standards and for C++ (as it still remains in
>     C++23, albeit marked as deprecated since C17 and C++20.)
>
>     Also separate `atomic_init` definitions from `ATOMIC_VAR_INIT` to
>     avoid coupling with a deprecated initialisation mechanism.
>
>     No functional change intended for `atomic_init`; this is purely a
>     conformance and cleanup adjustment.
>
>     Signed-off-by: Faraz Vahedi <kfv@kfv.io>
>     Reviewed by: imp
>     Pull Request: https://github.com/freebsd/freebsd-src/pull/2185
> ---
>  sys/sys/stdatomic.h | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/sys/sys/stdatomic.h b/sys/sys/stdatomic.h
> index c3f9b217519c..2d565ce991be 100644
> --- a/sys/sys/stdatomic.h
> +++ b/sys/sys/stdatomic.h
> @@ -86,11 +86,17 @@
>   * 7.17.2 Initialization.
>   */
>
> +#if __ISO_C_VISIBLE < 2023 || defined(__cplusplus)
>  #if defined(__CLANG_ATOMICS)
>  #define        ATOMIC_VAR_INIT(value)          (value)
> -#define        atomic_init(obj, value)         __c11_atomic_init(obj,
> value)
>  #else
>  #define        ATOMIC_VAR_INIT(value)          { .__val = (value) }
> +#endif
> +#endif
> +
> +#if defined(__CLANG_ATOMICS)
> +#define        atomic_init(obj, value)         __c11_atomic_init(obj,
> value)
> +#else
>  #define        atomic_init(obj, value)         ((void)((obj)->__val =
> (value)))
>  #endif
>
>
>

-- 
Nuno Teixeira
FreeBSD UNIX:  <eduardo@FreeBSD.org>   Web:  https://FreeBSD.org

[-- Attachment #2 --]
<div dir="ltr"><div><div><div>Hello,<br><br></div><div>(poudriere-devel build at main-n286792-eafa181d51f7: Sat Jun 20)</div><div><br></div>I&#39;ve found that ports-mgmt/portfmt started failing with:<br>...<br>FAILED: [code=1] /wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/_build/portscan/status.o<br>cc -std=gnu11 -O2 -g -W -Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wno-unused-parameter -flto=thin -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  -Wno-strict-prototypes  -DPORTFMT_SUBPACKAGES=0 -MD -MF /wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/_build/portscan/status.o.d -I/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/_build -I/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6 -c -o /wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/_build/portscan/status.o /wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/portscan/status.c<br>/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/portscan/status.c:59:38: warning: call to undeclared function &#39;ATOMIC_VAR_INIT&#39;; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]<br>   59 | static atomic_int status_requested = ATOMIC_VAR_INIT(0);<br>      |                                      ^<br>/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/portscan/status.c:59:38: error: initializer element is not a compile-time constant<br>   59 | static atomic_int status_requested = ATOMIC_VAR_INIT(0);<br>      |                                      ^~~~~~~~~~~~~~~~~~<br>/wrkdirs/usr/ports/ports-mgmt/portfmt/work/portfmt-1.1.6/portscan/status.c:60:32: error: initializer element is not a compile-time constant<br>   60 | static atomic_size_t scanned = ATOMIC_VAR_INIT(0);<br>      |                                ^~~~~~~~~~~~~~~~~~<br>1 warning and 2 errors generated.<br>...<br><br></div>Same for devel/qt6-base:<br><br>...<br>FAILED: [code=1] src/corelib/CMakeFiles/Core.dir/io/forkfd_qt.c.o<br>/usr/bin/cc -DBACKTRACE_HEADER=\&quot;execinfo.h\&quot; -DCore_EXPORTS -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_EXPLICIT_QFILE_CONSTRUCTION_FROM_PATH -DQT_LEAN_HEADERS=1 -<br>DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_CONTEXTLESS_CONNECT -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_QASCONST -DQT_NO_QEXCHANGE -DQT_NO_QPAI<br>R -DQT_NO_QSNPRINTF -DQT_NO_SINGLE_ARGUMENT_QHASH_OVERLOAD=1 -DQT_NO_STD_FORMAT_SUPPORT -DQT_NO_USING_NAMESPACE -DQT_TYPESAFE_FLAGS -DQT_USE_NODISCARD_FILE_OPEN -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE -D_LA<br>RGEFILE_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -I/wrkdirs/usr/ports/devel/qt6-base/work/.build/src/corelib/Core_autogen/include -I/wrkdirs/usr/ports/devel/qt6-base/work/.build/include -I/wrkd<br>irs/usr/ports/devel/qt6-base/work/.build/include/QtCore -I/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib -I/wrkdirs/usr/ports/devel/qt6-base/work/.build/src/corelib -I/wrkdirs/usr<br>/ports/devel/qt6-base/work/.build/src/corelib/global -I/wrkdirs/usr/ports/devel/qt6-base/work/.build/src/corelib/kernel -I/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/../3rdpart<br>y/tinycbor/src -I/wrkdirs/usr/ports/devel/qt6-base/work/.build/include/QtCore/6.11.1 -I/wrkdirs/usr/ports/devel/qt6-base/work/.build/include/QtCore/6.11.1/QtCore -I/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-ev<br>erywhere-src-6.11.1/src/corelib/../3rdparty/forkfd -I/wrkdirs/usr/ports/devel/qt6-base/work/.build/src/corelib/.rcc -I/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/mkspecs/freebsd-clang -isy<br>stem /usr/local/include -isystem /usr/local/include/glib-2.0 -isystem /usr/local/lib/glib-2.0/include -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -pipe  -fstack-protector-strong -fno-strict-aliasing<br> -DNDEBUG -O3 -std=gnu11 -fPIC -fvisibility=hidden -Wall -Wextra -pthread -fcf-protection=full -ftrivial-auto-var-init=pattern -fstack-protector-strong -fexceptions -MD -MT src/corelib/CMakeFiles/Core.dir/io/fork<br>fd_qt.c.o -MF src/corelib/CMakeFiles/Core.dir/io/forkfd_qt.c.o.d -o src/corelib/CMakeFiles/Core.dir/io/forkfd_qt.c.o -c /wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/forkfd_qt<br>.c<br>In file included from /wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/forkfd_qt.c:16:<br>/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd.c:162:39: warning: call to undeclared function &#39;ATOMIC_VAR_INIT&#39;; ISO C99 and later do not support i<br>mplicit function declarations [-Wimplicit-function-declaration]<br>  162 | static ffd_atomic_int forkfd_status = FFD_ATOMIC_INIT(0);<br>      |                                       ^<br>/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:54:37: note: expanded from macro &#39;FFD_ATOMIC_INIT&#39;<br>   54 | #define FFD_ATOMIC_INIT(val)        ATOMIC_VAR_INIT(val)<br>      |                                     ^<br>In file included from /wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/forkfd_qt.c:16:<br>/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd.c:162:39: error: initializer element is not a compile-time constant<br>  162 | static ffd_atomic_int forkfd_status = FFD_ATOMIC_INIT(0);<br>      |                                       ^~~~~~~~~~~~~~~~~~<br>/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:54:37: note: expanded from macro &#39;FFD_ATOMIC_INIT&#39;<br>   54 | #define FFD_ATOMIC_INIT(val)        ATOMIC_VAR_INIT(val)<br>      |                                     ^~~~~~~~~~~~~~~~~~~~<br>In file included from /wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/forkfd_qt.c:16:<br>In file included from /wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd.c:930:<br>/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd_freebsd.c:45:45: error: initializer element is not a compile-time constant<br>   45 | static ffd_atomic_int system_forkfd_state = FFD_ATOMIC_INIT(1);<br>      |                                             ^~~~~~~~~~~~~~~~~~<br>/wrkdirs/usr/ports/devel/qt6-base/work/qtbase-everywhere-src-6.11.1/src/corelib/io/../../3rdparty/forkfd/forkfd_c11.h:54:37: note: expanded from macro &#39;FFD_ATOMIC_INIT&#39;<br>   54 | #define FFD_ATOMIC_INIT(val)        ATOMIC_VAR_INIT(val)<br>      |                                     ^~~~~~~~~~~~~~~~~~~~<br>1 warning and 2 errors generated.<br>...<br><br></div>Thanks,</div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">Warner Losh &lt;<a href="mailto:imp@freebsd.org">imp@freebsd.org</a>&gt; escreveu (sábado, 20/06/2026 à(s) 01:25):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The branch main has been updated by imp:<br>
<br>
URL: <a href="https://cgit.FreeBSD.org/src/commit/?id=28cecfe27964fdb67497800f5dcd5d3e1033727f" rel="noreferrer" target="_blank">https://cgit.FreeBSD.org/src/commit/?id=28cecfe27964fdb67497800f5dcd5d3e1033727f</a><br>;
<br>
commit 28cecfe27964fdb67497800f5dcd5d3e1033727f<br>
Author:     Faraz Vahedi &lt;<a href="mailto:kfv@kfv.io" target="_blank">kfv@kfv.io</a>&gt;<br>
AuthorDate: 2026-05-01 14:34:44 +0000<br>
Commit:     Warner Losh &lt;imp@FreeBSD.org&gt;<br>
CommitDate: 2026-06-20 00:23:28 +0000<br>
<br>
    libc: Restrict ATOMIC_VAR_INIT for C23 conformance<br>
<br>
    Omit `ATOMIC_VAR_INIT` when targeting C23, where it has been removed.<br>
    Retain it for earlier C standards and for C++ (as it still remains in<br>
    C++23, albeit marked as deprecated since C17 and C++20.)<br>
<br>
    Also separate `atomic_init` definitions from `ATOMIC_VAR_INIT` to<br>
    avoid coupling with a deprecated initialisation mechanism.<br>
<br>
    No functional change intended for `atomic_init`; this is purely a<br>
    conformance and cleanup adjustment.<br>
<br>
    Signed-off-by: Faraz Vahedi &lt;<a href="mailto:kfv@kfv.io" target="_blank">kfv@kfv.io</a>&gt;<br>
    Reviewed by: imp<br>
    Pull Request: <a href="https://github.com/freebsd/freebsd-src/pull/2185" rel="noreferrer" target="_blank">https://github.com/freebsd/freebsd-src/pull/2185</a><br>;
---<br>
 sys/sys/stdatomic.h | 8 +++++++-<br>
 1 file changed, 7 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/sys/sys/stdatomic.h b/sys/sys/stdatomic.h<br>
index c3f9b217519c..2d565ce991be 100644<br>
--- a/sys/sys/stdatomic.h<br>
+++ b/sys/sys/stdatomic.h<br>
@@ -86,11 +86,17 @@<br>
  * 7.17.2 Initialization.<br>
  */<br>
<br>
+#if __ISO_C_VISIBLE &lt; 2023 || defined(__cplusplus)<br>
 #if defined(__CLANG_ATOMICS)<br>
 #define        ATOMIC_VAR_INIT(value)          (value)<br>
-#define        atomic_init(obj, value)         __c11_atomic_init(obj, value)<br>
 #else<br>
 #define        ATOMIC_VAR_INIT(value)          { .__val = (value) }<br>
+#endif<br>
+#endif<br>
+<br>
+#if defined(__CLANG_ATOMICS)<br>
+#define        atomic_init(obj, value)         __c11_atomic_init(obj, value)<br>
+#else<br>
 #define        atomic_init(obj, value)         ((void)((obj)-&gt;__val = (value)))<br>
 #endif<br>
<br>
<br>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><font color="#888888">Nuno Teixeira</font></div><div><div><font color="#888888">
FreeBSD UNIX:  &lt;eduardo@FreeBSD.org&gt;   Web:  <a href="https://FreeBSD.org" rel="noreferrer" target="_blank">https://FreeBSD.org</a><br></font></div></div></div></div>;
home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFDf7UKQc0gH2M=Vj-4FNzXKytQ%2B1jPM6x6hn962Tju6ekO8Gg>