<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/contrib/libc++/include, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Move all sources from the llvm project into contrib/llvm-project.</title>
<updated>2019-12-20T19:53:05+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2019-12-20T19:53:05+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0b57cec536236d46e3dba9bd041533462f33dbb7'/>
<id>0b57cec536236d46e3dba9bd041533462f33dbb7</id>
<content type='text'>
This uses the new layout of the upstream repository, which was recently
migrated to GitHub, and converted into a "monorepo".  That is, most of
the earlier separate sub-projects with their own branches and tags were
consolidated into one top-level directory, and are now branched and
tagged together.

Updating the vendor area to match this layout is next.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This uses the new layout of the upstream repository, which was recently
migrated to GitHub, and converted into a "monorepo".  That is, most of
the earlier separate sub-projects with their own branches and tags were
consolidated into one top-level directory, and are now branched and
tagged together.

Updating the vendor area to match this layout is next.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge commit 371ea70bb from llvm git (by Louis Dionne):</title>
<updated>2019-11-11T17:41:56+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2019-11-11T17:41:56+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a600a25e3ea5715262299f032796a83bf7ee330e'/>
<id>a600a25e3ea5715262299f032796a83bf7ee330e</id>
<content type='text'>
  [libc++] Harden usage of static_assert against C++03

  In C++03, we emulate static_assert with a macro, and we must
  parenthesize multiple arguments.

  llvm-svn: 373328

This is a follow-up to r354460, which causes errors for pre-C++11
programs using &lt;cmath&gt;, similar to:

/usr/include/c++/v1/cmath:622:68: error: too many arguments provided to
function-like macro invocation

Reported by:	antoine
MFC after:	immediately (because of ports breakage)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  [libc++] Harden usage of static_assert against C++03

  In C++03, we emulate static_assert with a macro, and we must
  parenthesize multiple arguments.

  llvm-svn: 373328

This is a follow-up to r354460, which causes errors for pre-C++11
programs using &lt;cmath&gt;, similar to:

/usr/include/c++/v1/cmath:622:68: error: too many arguments provided to
function-like macro invocation

Reported by:	antoine
MFC after:	immediately (because of ports breakage)
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge commit e8316372b from llvm git (by Louis Dionne):</title>
<updated>2019-11-07T18:26:01+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2019-11-07T18:26:01+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=04677a42a37ba4b6daf6719930e149fa99a9b546'/>
<id>04677a42a37ba4b6daf6719930e149fa99a9b546</id>
<content type='text'>
  [libc++] Add `__truncating_cast` for safely casting float types to
  integers

  This is needed anytime we need to clamp an arbitrary floating point
  value to an integer type.

  Thanks to Eric Fiselier for the patch.

  Differential Revision: https://reviews.llvm.org/D66836

  llvm-svn: 370891

Merge commit b92deded8 from llvm git (by Louis Dionne):

  [libc++] Move __clamp_to_integral to &lt;cmath&gt;, and harden against
  min()/max() macros

  llvm-svn: 370900

Merge commit 0ec6a4882 from llvm git (by Louis Dionne):

  [libc++] Fix potential OOB in poisson_distribution

  See details in the original Chromium bug report:
      https://bugs.chromium.org/p/chromium/issues/detail?id=994957

Together, these fix a security issue in libc++'s implementation of
std::poisson_distribution, which can be exploited to read data which is
out of bounds.

Note there are no programs in the FreeBSD base system that use
std::poisson_distribution, so this is only a possible issue for ports
and external programs which have been built against libc++.  Therefore,
I am bumping __FreeBSD_version for the benefit of our port maintainers.

Requested by:	emaste
Security:	potential OOB read
MFC after:	3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  [libc++] Add `__truncating_cast` for safely casting float types to
  integers

  This is needed anytime we need to clamp an arbitrary floating point
  value to an integer type.

  Thanks to Eric Fiselier for the patch.

  Differential Revision: https://reviews.llvm.org/D66836

  llvm-svn: 370891

Merge commit b92deded8 from llvm git (by Louis Dionne):

  [libc++] Move __clamp_to_integral to &lt;cmath&gt;, and harden against
  min()/max() macros

  llvm-svn: 370900

Merge commit 0ec6a4882 from llvm git (by Louis Dionne):

  [libc++] Fix potential OOB in poisson_distribution

  See details in the original Chromium bug report:
      https://bugs.chromium.org/p/chromium/issues/detail?id=994957

Together, these fix a security issue in libc++'s implementation of
std::poisson_distribution, which can be exploited to read data which is
out of bounds.

Note there are no programs in the FreeBSD base system that use
std::poisson_distribution, so this is only a possible issue for ports
and external programs which have been built against libc++.  Therefore,
I am bumping __FreeBSD_version for the benefit of our port maintainers.

Requested by:	emaste
Security:	potential OOB read
MFC after:	3 days
</pre>
</div>
</content>
</entry>
<entry>
<title>Use __FreeBSD_version to determine if gets() has been removed.</title>
<updated>2019-10-15T18:16:10+00:00</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2019-10-15T18:16:10+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f7f6b03a1374ddcaeea12cb3db2b6335df001f2b'/>
<id>f7f6b03a1374ddcaeea12cb3db2b6335df001f2b</id>
<content type='text'>
GCC compilers set __FreeBSD__ statically to a build-time determined
targeted version (which in ports always matches the build host's
version).  This means that when building any version (12 or 13, etc.)
of riscv or some other architecture via GCC on a 12.x host,
__FreeBSD__ will always be set to 12.  As a result, __FreeBSD__ cannot
be used to reliably detect the target FreeBSD version being built.
Instead, __FreeBSD_version from either &lt;sys/param.h&gt; (in the kernel)
or &lt;osreldate.h&gt; (in userland) should be used.

This changes the gets() test in libc++ to use __FreeBSD_version from
&lt;osreldate.h&gt;.

Reported by:	jenkins (riscv64 and amd64-gcc)
Reviewed by:	dim, imp
Differential Revision:	https://reviews.freebsd.org/D22034
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GCC compilers set __FreeBSD__ statically to a build-time determined
targeted version (which in ports always matches the build host's
version).  This means that when building any version (12 or 13, etc.)
of riscv or some other architecture via GCC on a 12.x host,
__FreeBSD__ will always be set to 12.  As a result, __FreeBSD__ cannot
be used to reliably detect the target FreeBSD version being built.
Instead, __FreeBSD_version from either &lt;sys/param.h&gt; (in the kernel)
or &lt;osreldate.h&gt; (in userland) should be used.

This changes the gets() test in libc++ to use __FreeBSD_version from
&lt;osreldate.h&gt;.

Reported by:	jenkins (riscv64 and amd64-gcc)
Reviewed by:	dim, imp
Differential Revision:	https://reviews.freebsd.org/D22034
</pre>
</div>
</content>
</entry>
<entry>
<title>Partially undo r351659, which unconditionally removed gets(3) from libc++.</title>
<updated>2019-09-19T19:39:34+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2019-09-19T19:39:34+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2ee8a62f0f8d727f7d0a03717d09f9c82199ee2a'/>
<id>2ee8a62f0f8d727f7d0a03717d09f9c82199ee2a</id>
<content type='text'>
Instead, pull in r371324 from upstream libc++ trunk (by me):

  Remove ::gets for FreeBSD 13 and later

  Summary:

  In https://svnweb.freebsd.org/changeset/base/351659 @emaste removed
  gets() from FreeBSD 13's libc, and our copies of libc++ and
  libstdc++.  In that change, the declarations were simply deleted, but
  I would like to propose this conditional test instead.

  Reviewers: EricWF, mclow.lists, emaste

  Reviewed By: mclow.lists

  Subscribers: krytarowski, christof, ldionne, emaste, libcxx-commits

  Differential Revision: https://reviews.llvm.org/D67316

This makes these changes more MFCable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead, pull in r371324 from upstream libc++ trunk (by me):

  Remove ::gets for FreeBSD 13 and later

  Summary:

  In https://svnweb.freebsd.org/changeset/base/351659 @emaste removed
  gets() from FreeBSD 13's libc, and our copies of libc++ and
  libstdc++.  In that change, the declarations were simply deleted, but
  I would like to propose this conditional test instead.

  Reviewers: EricWF, mclow.lists, emaste

  Reviewed By: mclow.lists

  Subscribers: krytarowski, christof, ldionne, emaste, libcxx-commits

  Differential Revision: https://reviews.llvm.org/D67316

This makes these changes more MFCable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge ^/head r351317 through r351731.</title>
<updated>2019-09-03T05:58:43+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2019-09-03T05:58:43+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=c5c3ba6b43cac20dc9432eac15758d41cb2b8b1f'/>
<id>c5c3ba6b43cac20dc9432eac15758d41cb2b8b1f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb, and openmp</title>
<updated>2019-09-02T17:55:39+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2019-09-02T17:55:39+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=6a82ac86f0fe2b5474b88c99f259b3f7b8a143ef'/>
<id>6a82ac86f0fe2b5474b88c99f259b3f7b8a143ef</id>
<content type='text'>
release_90 branch r370514, and update version numbers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
release_90 branch r370514, and update version numbers.
</pre>
</div>
</content>
</entry>
<entry>
<title>libc: remove gets</title>
<updated>2019-09-01T16:12:05+00:00</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2019-09-01T16:12:05+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=7381dcc9eeb7da1b1ba103212e15561e14b48a8d'/>
<id>7381dcc9eeb7da1b1ba103212e15561e14b48a8d</id>
<content type='text'>
gets is unsafe and shouldn't be used (for many years now).  Leave it in
the existing symbol version so anything that previously linked aginst it
still runs, but do not allow new software to link against it.

(The compatability/legacy implementation must not be static so that
the symbol and in particular the compat sym gets@FBSD_1.0 make it
into libc.)

PR:		222796 (exp-run)
Reported by:	Paul Vixie
Reviewed by:	allanjude, cy, eadler, gnn, jhb, kib, ngie (some earlier)
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D12298
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
gets is unsafe and shouldn't be used (for many years now).  Leave it in
the existing symbol version so anything that previously linked aginst it
still runs, but do not allow new software to link against it.

(The compatability/legacy implementation must not be static so that
the symbol and in particular the compat sym gets@FBSD_1.0 make it
into libc.)

PR:		222796 (exp-run)
Reported by:	Paul Vixie
Reviewed by:	allanjude, cy, eadler, gnn, jhb, kib, ngie (some earlier)
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D12298
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge libc++ trunk r366426, resolve conflicts, and add FREEBSD-Xlist.</title>
<updated>2019-08-22T19:49:51+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2019-08-22T19:49:51+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2f1cb2a6c9c3a63d61ea267fb9d81773616ea83b'/>
<id>2f1cb2a6c9c3a63d61ea267fb9d81773616ea83b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pull in r368867 from upstream libc++ trunk (by Marshall Clow):</title>
<updated>2019-08-20T17:39:32+00:00</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2019-08-20T17:39:32+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=51ff47d7a51bc4a1ab5ccc8694fb59b548b488c1'/>
<id>51ff47d7a51bc4a1ab5ccc8694fb59b548b488c1</id>
<content type='text'>
  Rework recursive_timed_mutex so that it uses __thread_id instead of
  using the lower-level __libcpp_thread_id. This is prep for fixing
  PR42918. Reviewed as https://reviews.llvm.org/D65895

Pull in r368916 from upstream libc++ trunk (by Marshall Clow):

  Fix thread comparison by making sure we never pass our special 'not a
  thread' value to the underlying implementation. Fixes PR#42918.

This should fix std::thread::id::operator==() attempting to call
pthread_equal(3) with zero values.

Reported by:	andrew@tao11.riddles.org.uk
PR:		239038, 239550
MFC after:	3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Rework recursive_timed_mutex so that it uses __thread_id instead of
  using the lower-level __libcpp_thread_id. This is prep for fixing
  PR42918. Reviewed as https://reviews.llvm.org/D65895

Pull in r368916 from upstream libc++ trunk (by Marshall Clow):

  Fix thread comparison by making sure we never pass our special 'not a
  thread' value to the underlying implementation. Fixes PR#42918.

This should fix std::thread::id::operator==() attempting to call
pthread_equal(3) with zero values.

Reported by:	andrew@tao11.riddles.org.uk
PR:		239038, 239550
MFC after:	3 days
</pre>
</div>
</content>
</entry>
</feed>
