<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libc++, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Revert 00bee6fcd77f, which partially reverted libc++ commit aa7f377c965c</title>
<updated>2026-05-01T18:16:18+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2026-05-01T18:12:55+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=19ff93c921a9d31770bcfc194c078e7a42a5f14f'/>
<id>19ff93c921a9d31770bcfc194c078e7a42a5f14f</id>
<content type='text'>
After base 966fb94cb357, this revert is no longer necessary: stdint.h
will unconditionally define macros such as `SIZE_MAX`, `UINT64_C`, and
others.

Submitted by:   Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;
MFC after:      1 month
Reviewed by:    imp
Differential Revision: https://reviews.freebsd.org/D56746
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After base 966fb94cb357, this revert is no longer necessary: stdint.h
will unconditionally define macros such as `SIZE_MAX`, `UINT64_C`, and
others.

Submitted by:   Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;
MFC after:      1 month
Reviewed by:    imp
Differential Revision: https://reviews.freebsd.org/D56746
</pre>
</div>
</content>
</entry>
<entry>
<title>Partially revert libc++ commit aa7f377c965c, restoring stdint.h</title>
<updated>2026-04-25T14:14:11+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2025-12-30T19:49:35+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=00bee6fcd77f7812e967f85d1cacbc349ff312b3'/>
<id>00bee6fcd77f7812e967f85d1cacbc349ff312b3</id>
<content type='text'>
This partially reverts upstream libc++ commit aa7f377c965c:

  [libc++] Remove libc++'s own stdint.h and locale.h (#107436)

  These headers are not doing anything beyond the system or compiler
  provided equivalent headers, so there's no real reason to keep them
  around. Reducing the number of C headers we provide in libc++ simplifies
  our header layering and reduces the potential for confusion when headers
  are layered incorrectly.

The problem is that libc++'s own `stdint.h` _does_ do something: it
defines `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` before
including the system `stdint.h`, causing the latter to expose macros
like `SIZE_MAX`, `UINT64_C`, and others.

If the `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` macros are not
exposed, C++ programs compiled for standards before C++11 can fail with
errors due to those macros not being available.

PR:		292067
MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This partially reverts upstream libc++ commit aa7f377c965c:

  [libc++] Remove libc++'s own stdint.h and locale.h (#107436)

  These headers are not doing anything beyond the system or compiler
  provided equivalent headers, so there's no real reason to keep them
  around. Reducing the number of C headers we provide in libc++ simplifies
  our header layering and reduces the potential for confusion when headers
  are layered incorrectly.

The problem is that libc++'s own `stdint.h` _does_ do something: it
defines `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` before
including the system `stdint.h`, causing the latter to expose macros
like `SIZE_MAX`, `UINT64_C`, and others.

If the `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` macros are not
exposed, C++ programs compiled for standards before C++11 can fail with
errors due to those macros not being available.

PR:		292067
MFC after:	1 month
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge llvm-project release/21.x llvmorg-21.1.7-0-gcd708029e0b2</title>
<updated>2026-04-25T14:14:02+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2025-12-27T23:23:22+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=e64bea71c21eb42e97aa615188ba91f6cce0d36d'/>
<id>e64bea71c21eb42e97aa615188ba91f6cce0d36d</id>
<content type='text'>
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/21.x llvmorg-21.1.7-0-gcd708029e0b2,
a.k.a. 21.1.7 release.

PR:		292067
MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/21.x llvmorg-21.1.7-0-gcd708029e0b2,
a.k.a. 21.1.7 release.

PR:		292067
MFC after:	1 month
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixups after llvm-project main llvmorg-21-init-19288-gface93e724f4 merge</title>
<updated>2026-04-25T14:11:52+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2025-12-09T09:38:16+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=770cf0a5f02dc8983a89c6568d741fbc25baa999'/>
<id>770cf0a5f02dc8983a89c6568d741fbc25baa999</id>
<content type='text'>
Fix various configuration fails, update generated headers, Makefiles, etc.

PR:		292067
MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix various configuration fails, update generated headers, Makefiles, etc.

PR:		292067
MFC after:	1 month
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "libcxx-compat: install headers that were reintroduced by reverts"</title>
<updated>2026-04-25T14:07:40+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2025-12-06T20:24:14+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d6d48190ec6a62a20ef603011f215015c1d999fb'/>
<id>d6d48190ec6a62a20ef603011f215015c1d999fb</id>
<content type='text'>
This reverts commit 8ad38d5eb3985ef778a7d36093878b0b373ccedf, in
preparation for merging llvm 21.

PR:		292067
MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 8ad38d5eb3985ef778a7d36093878b0b373ccedf, in
preparation for merging llvm 21.

PR:		292067
MFC after:	1 month
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "libcxx-compat: update libcxx.imp for headers that were reintroduced by reverts"</title>
<updated>2026-04-25T14:07:40+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2025-12-06T20:24:14+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=5945da0bc9ac42f531b1079a246eb8ce4f0d63db'/>
<id>5945da0bc9ac42f531b1079a246eb8ce4f0d63db</id>
<content type='text'>
This reverts commit caf0ccccc304e3e7938c9722f1deb0a362fd70d5, in
preparation for merging llvm 21.

PR:		292067
MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit caf0ccccc304e3e7938c9722f1deb0a362fd70d5, in
preparation for merging llvm 21.

PR:		292067
MFC after:	1 month
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge llvm-project release/19.x llvmorg-19.1.3-0-gab51eccf88f5</title>
<updated>2024-11-08T16:45:31+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2024-11-08T11:32:34+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d686ce931cab72612a9e1ada9fe99d65e11a32a3'/>
<id>d686ce931cab72612a9e1ada9fe99d65e11a32a3</id>
<content type='text'>
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.3-0-gab51eccf88f5,
a.k.a. 19.1.3 release.

PR:		280562
MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.3-0-gab51eccf88f5,
a.k.a. 19.1.3 release.

PR:		280562
MFC after:	1 month
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix buildworld with gcc 12 after llvm-19 import</title>
<updated>2024-10-25T16:08:32+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2024-10-25T16:07:59+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=bc9e19dce0abee80750e6fa04aaf979873bfe0d2'/>
<id>bc9e19dce0abee80750e6fa04aaf979873bfe0d2</id>
<content type='text'>
Unfortunately gcc 12's is not yet capable of compiling all of libc++
19's C++23 code, which results in errors similar to:

  /usr/src/freebsd/src/contrib/llvm-project/libcxx/include/__algorithm/ranges_contains.h:41:3: error: 'static constexpr bool std::__1::ranges::__contains::__fn::operator()(_Iter, _Sent, const _Type&amp;, _Proj)' must be a non-static member function
     41 |   operator()(_Iter __first, _Sent __last, const _Type&amp; __value, _Proj __proj = {}) {
        |   ^~~~~~~~
  /usr/src/freebsd/src/contrib/llvm-project/libcxx/include/__algorithm/ranges_contains.h:48:3: error: 'static constexpr bool std::__1::ranges::__contains::__fn::operator()(_Range&amp;&amp;, const _Type&amp;, _Proj)' must be a non-static member function
     48 |   operator()(_Range&amp;&amp; __range, const _Type&amp; __value, _Proj __proj = {}) {
        |   ^~~~~~~~

Until we can get rid of gcc 12, work around this by making it compile
libc++ in C++20 mode instead.

NOTE: The resulting libc++ library will not be C++23 compatible! Please
try to avoid shipping it, and use gcc 13 instead, if you must use gcc.

PR:		280562
MFC after:	3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unfortunately gcc 12's is not yet capable of compiling all of libc++
19's C++23 code, which results in errors similar to:

  /usr/src/freebsd/src/contrib/llvm-project/libcxx/include/__algorithm/ranges_contains.h:41:3: error: 'static constexpr bool std::__1::ranges::__contains::__fn::operator()(_Iter, _Sent, const _Type&amp;, _Proj)' must be a non-static member function
     41 |   operator()(_Iter __first, _Sent __last, const _Type&amp; __value, _Proj __proj = {}) {
        |   ^~~~~~~~
  /usr/src/freebsd/src/contrib/llvm-project/libcxx/include/__algorithm/ranges_contains.h:48:3: error: 'static constexpr bool std::__1::ranges::__contains::__fn::operator()(_Range&amp;&amp;, const _Type&amp;, _Proj)' must be a non-static member function
     48 |   operator()(_Range&amp;&amp; __range, const _Type&amp; __value, _Proj __proj = {}) {
        |   ^~~~~~~~

Until we can get rid of gcc 12, work around this by making it compile
libc++ in C++20 mode instead.

NOTE: The resulting libc++ library will not be C++23 compatible! Please
try to avoid shipping it, and use gcc 13 instead, if you must use gcc.

PR:		280562
MFC after:	3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>libcxx-compat: update libcxx.imp for headers that were reintroduced by reverts</title>
<updated>2024-10-23T18:26:50+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2024-08-06T08:47:32+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ff6c8447844b0f48bf507b2af4a0b8870e34e09e'/>
<id>ff6c8447844b0f48bf507b2af4a0b8870e34e09e</id>
<content type='text'>
PR:		280562
MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PR:		280562
MFC after:	1 month
</pre>
</div>
</content>
</entry>
<entry>
<title>libcxx-compat: install headers that were reintroduced by reverts</title>
<updated>2024-10-23T18:26:49+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2024-08-05T20:41:08+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2e861daab905dcc0c2056e5712de5e1c0d1f865b'/>
<id>2e861daab905dcc0c2056e5712de5e1c0d1f865b</id>
<content type='text'>
PR:		280562
MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PR:		280562
MFC after:	1 month
</pre>
</div>
</content>
</entry>
</feed>
