summaryrefslogtreecommitdiff
path: root/lib/libc++
AgeCommit message (Collapse)Author
2024-11-08Merge llvm-project release/19.x llvmorg-19.1.3-0-gab51eccf88f5Dimitry Andric
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
2024-10-25Fix buildworld with gcc 12 after llvm-19 importDimitry Andric
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&, _Proj)' must be a non-static member function 41 | operator()(_Iter __first, _Sent __last, const _Type& __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&&, const _Type&, _Proj)' must be a non-static member function 48 | operator()(_Range&& __range, const _Type& __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
2024-10-23libcxx-compat: update libcxx.imp for headers that were reintroduced by revertsDimitry Andric
PR: 280562 MFC after: 1 month
2024-10-23libcxx-compat: install headers that were reintroduced by revertsDimitry Andric
PR: 280562 MFC after: 1 month
2024-10-23Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2. PR: 280562 MFC after: 1 month
2024-10-23Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-19-init-18630-gf2ccf80136a0, the last commit before the upstream release/19.x branch was created. PR: 280562 MFC after: 1 month
2024-07-15Remove residual blank line at start of MakefileWarner Losh
This is a residual of the $FreeBSD$ removal. MFC After: 3 days (though I'll just run the command on the branches) Sponsored by: Netflix
2024-04-06Merge llvm-project main llvmorg-18-init-18359-g93248729cfaeDimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-18359-g93248729cfae, the last commit before the upstream release/18.x branch was created. PR: 276104 MFC after: 1 month
2024-04-06Merge llvm-project main llvmorg-18-init-16864-g3b3ee1f53424Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-16864-g3b3ee1f53424. PR: 276104 MFC after: 1 month
2024-04-06Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6aDimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-15692-g007ed0dccd6a. PR: 276104 MFC after: 1 month
2024-04-06Merge llvm-project main llvmorg-18-init-15088-gd14ee76181fbDimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-15088-gd14ee76181fb. PR: 276104 MFC after: 1 month
2023-12-20Add missing /usr/include/c++/v1/__mdspan/mdspan.h headerDimitry Andric
I missed this header while updating the Makefile for libc++ 17. PR: 273753 MFC after: 1 month
2023-12-08Merge llvm-project release/17.x llvmorg-17.0.0-rc4-10-g0176e8729ea4Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-17.0.0-rc4-10-g0176e8729ea4. PR: 273753 MFC after: 1 month
2023-12-08Merge llvm-project main llvmorg-17-init-19304-gd0b54bb50e51Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-17-init-19304-gd0b54bb50e51, the last commit before the upstream release/17.x branch was created. PR: 273753 MFC after: 1 month
2023-08-16Remove $FreeBSD$: one-line sh patternWarner Losh
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
2023-08-16Remove $FreeBSD$: one-line .c comment patternWarner Losh
Remove /^/[*/]\s*\$FreeBSD\$.*\n/
2023-06-22Merge llvm-project main llvmorg-16-init-18548-gb0daacf58f41Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-16-init-18548-gb0daacf58f41. PR: 271047 MFC after: 1 month
2023-02-08Merge llvm-project release/15.x llvmorg-15.0.2-10-gf3c5289e7846Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15.0.2-10-gf3c5289e7846. PR: 265425 MFC after: 2 weeks
2023-02-08Merge llvm-project release/15.x llvmorg-15.0.0-rc2-40-gfbd2950d8d0dDimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15.0.0-rc2-40-gfbd2950d8d0d. PR: 265425 MFC after: 2 weeks
2023-02-08Merge llvm-project main llvmorg-15-init-17826-g1f8ae9d7e7e4Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15-init-17826-g1f8ae9d7e7e4, the last commit before the upstream release/16.x branch was created. PR: 265425 MFC after: 2 weeks
2023-02-08Merge llvm-project main llvmorg-15-init-17485-ga3e38b4a206bDimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15-init-17485-ga3e38b4a206b. PR: 265425 MFC after: 2 weeks
2023-02-08Merge llvm-project main llvmorg-15-init-16436-g18a6ab5b8d1fDimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15-init-16436-g18a6ab5b8d1f. PR: 265425 MFC after: 2 weeks
2023-02-08Merge llvm-project main llvmorg-15-init-15358-g53dc0f10787Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-15-init-15358-g53dc0f10787. PR: 265425 MFC after: 2 weeks
2022-05-14Apply libc++ fix for <ranges> not compiling at allDimitry Andric
Merge commit 44cdca37c01a from llvm git (by Arthur O'Dwyer): [libc++] Define `namespace views` in its own detail header. Discovered in the comments on D118748: we would like this namespace to exist anytime Ranges exists, regardless of whether concepts syntax is supported. Also, we'd like to fully granularize the <ranges> header, which means not putting any loose declarations at the top level. Differential Revision: https://reviews.llvm.org/D118809
2022-05-14Merge llvm-project main llvmorg-14-init-18294-gdb01b123d012Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-14-init-18294-gdb01b123d012, the last commit before the upstream release/14.x branch was created. PR: 261742 MFC after: 2 weeks
2022-05-14Merge llvm-project main llvmorg-14-init-17616-g024a1fab5c35Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-14-init-17616-g024a1fab5c35. PR: 261742 MFC after: 2 weeks
2022-05-14Merge llvm-project main llvmorg-14-init-11187-g222442ec2d71Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-14-init-11187-g222442ec2d71. PR: 261742 MFC after: 2 weeks
2022-05-14Merge llvm-project main llvmorg-14-init-10223-g401b76fdf2b3Dimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-14-init-10223-g401b76fdf2b3. PR: 261742 MFC after: 2 weeks
2022-02-10Install unwind.h into /usr/includeJohn Baldwin
Install headers from LLVM's libunwind in place of the headers from libcxxrt and allow C applications to use the library. As part of this, remove include/unwind.h and switch libthr over to using the installed unwind.h. Reviewed by: dim, emaste MFC after: 10 days Differential Revision: https://reviews.freebsd.org/D34065
2021-12-30Reapply: move libc++ from /usr/lib to /libDimitry Andric
As with other runtime components like libc or libcxxrt. If desired we can stop linking devd statically after this change (to achive approximately no net change in required root filesystem size). We must set SHLIBDIR with ?= before including <src.opts.mk>, otherwise that will have set SHBLIDIR to its default value of /usr/lib. Otherwise, "make delete-old-libs" would suggest to delete libc++.so.1 from /usr/lib, while there was not yet a copy in /lib. Reviewed by: imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33123
2021-12-30Revert "Move libc++ from /usr/lib to /lib"Ed Maste
This reverts commit 6b1c5775d1c29c7c42201254df82aca9f3820bc8. There are reports of errors with this change. Reported by: antoine
2021-12-29Move libc++ from /usr/lib to /libEd Maste
As with other runtime components like libc or libcxxrt. If desired we can stop linking devd statically after this change (to achive approximately no net change in required root filesystem size). Reviewed by: imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33123
2021-11-13Merge llvm-project release/13.x llvmorg-13.0.0-rc1-97-g23ba3732246aDimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-13.0.0-rc1-97-g23ba3732246a. PR: 258209 MFC after: 2 weeks
2021-06-13Merge llvm-project 12.0.0 releaseDimitry Andric
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release. PR: 255570 MFC after: 6 weeks
2021-06-03Add C++ headers <barrier> <concepts> <execution> <latch> <numbers> <semaphore>Dimitry Andric
I missed adding these to the libc++ Makefile, when importing llvm-project 11.0.0-rc1, even though they were supplied by upstream. While here, update OptionalObsoleteFiles.inc to add these new headers, and cleanup old cruft. Reported by: yuri Submitted by: jkim (Makefile diff) PR: 255374 MFC after: 3 days
2020-09-11Only set WARNS if not definedKyle Evans
This would allow interested parties to do experimental runs with an environment set appropriately to raise all the warnings throughout the build; e.g. env WARNS=6 NO_WERROR=yes buildworld. Not currently touching the numerous instances in ^/tools. MFC after: 1 week Notes: svn path=/head/; revision=365631
2020-08-22Add a few new source files to libc++, in particular the implementationDimitry Andric
part of std::random_shuffle. These were split off at some point by upstream, but I forgot to add them to our Makefile. This should allow some ports which use std::random_shuffle to correctly link again. Reported by: thierry PR: 248795 MFC after: 6 weeks X-MFX-With: r364284 Notes: svn path=/head/; revision=364482
2020-03-10Remove -mlong-calls vhen building arm libraries and llvm.Dimitry Andric
Clang from 9.0.0 onwards already has the necessary relocation range extenders, so this workaround is no longer needed (it produces longer and slower code). Tested on real hardware, and in cross-compile environment. Submitted by: mmel Notes: svn path=/projects/clang1000-import/; revision=358831
2020-01-27Update build glue for libc++.Dimitry Andric
Notes: svn path=/projects/clang1000-import/; revision=357176
2020-01-14Revert r353140: Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it aroundKyle Evans
arichardson has an actual fix for the same issue that this was working around; given that we don't build with llvm today, go ahead and revert the workaround in advance. Notes: svn path=/head/; revision=356735
2019-12-20Move all sources from the llvm project into contrib/llvm-project.Dimitry Andric
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. Notes: svn path=/head/; revision=355940
2019-12-11Update Makefile.depend filesSimon J. Gerraty
Update a bunch of Makefile.depend files as a result of adding Makefile.depend.options files Reviewed by: bdrewery MFC after: 1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D22494 Notes: svn path=/head/; revision=355617
2019-10-08Merge ^/head r352764 through r353315.Dimitry Andric
Notes: svn path=/projects/clang900-import/; revision=353316
2019-10-06Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it aroundKyle Evans
Diff partially stolen from CheriBSD; these bits need -Wl,-z,notext in order to build in an LLVM world. They are needed for all flavors/sizes of MIPS. This will eventually get fixed in LLVM, but it's unclear when. Reported by: arichardson, emaste Differential Revision: https://reviews.freebsd.org/D21696 Notes: svn path=/head/; revision=353140
2019-08-28Update build glue for building libc++.Dimitry Andric
Notes: svn path=/projects/clang900-import/; revision=351578
2019-04-22Rework CXXSTD setting via r345708Enji Cooper
This change allows the user to once again override the C++ standard, restoring high-level pre-r345708 behavior. This also unbreaks building lib/ofed/libibnetdisc/Makefile with a non-C++11 capable compiler, e.g., g++ 4.2.1, as the library supported being built with older C++ standards. MFC after: 2 weeks MFC with: r345708 Reviewed by: emaste Reported by: jbeich Differential Revision: https://reviews.freebsd.org/D19895 (as part of a larger change) Notes: svn path=/head/; revision=346574
2019-03-29Standardize `-std=c++* as `CXXSTD`Enji Cooper
CXXSTD was added as the C++ analogue to CSTD. CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`, otherwise for older versions of g++. This change standardizes the CXXSTD variable, originally added to googletest.test.inc.mk as part of r345203. As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`. Notes: This value is not sanity checked in bsd.sys.mk, however, given the two most used C++ compilers on FreeBSD (clang++ and g++) support both modes, it is likely to work with both toolchains. This method will be refined in the future to support more variants of C++, as not all versions of clang++ and g++ (for instance) support C++14, C++17, etc. Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD. Example: Before this commit: ``` CXXFLAGS+= -std=c++14 ``` After this commit: ``` CXXSTD= c++14 ``` Reviewed by: asomers Approved by: emaste (mentor) MFC after: 1 month MFC with: r345203, r345704, r345705 Relnotes: yes Tested with: make tinderbox Differential Revision: https://reviews.freebsd.org/D19732 Notes: svn path=/head/; revision=345708
2019-03-29Revert r345706: the third time will be the charmEnji Cooper
When a review is closed via Phabricator it updates the patch attached to the review. I downloaded the raw patch from Phabricator, applied it, and repeated my mistake from r345704 by accident mixing content from D19732 and D19738. For my own personal sanity, I will try not to mix reviews like this in the future. MFC after: 1 month MFC with: r345706 Approved by: emaste (mentor, implicit) Notes: svn path=/head/; revision=345707
2019-03-29Standardize `-std=c++* as `CXXSTD`Enji Cooper
CXXSTD was added as the C++ analogue to CSTD. CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`, otherwise for older versions of g++. This change standardizes the CXXSTD variable, originally added to googletest.test.inc.mk as part of r345203. As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`. Notes: This value is not sanity checked in bsd.sys.mk, however, given the two most used C++ compilers on FreeBSD (clang++ and g++) support both modes, it is likely to work with both toolchains. This method will be refined in the future to support more variants of C++, as not all versions of clang++ and g++ (for instance) support C++14, C++17, etc. Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD. Example: Before this commit: ``` CXXFLAGS+= -std=c++14 ``` After this commit: ``` CXXSTD= c++14 ``` Reviewed by: asomers Approved by: emaste (mentor) MFC after: 1 month MFC with: r345203, r345704, r345705 Relnotes: yes Tested with: make tinderbox Differential Revision: https://reviews.freebsd.org/D19732 Notes: svn path=/head/; revision=345706
2019-03-29Revert r345704Enji Cooper
I accidentally committed code from two reviews. I will reintroduce the code to bsd.progs.mk as part of a separate commit from r345704. Approved by: emaste (mentor, implicit) MFC after: 2 months MFC with: r345704 Notes: svn path=/head/; revision=345705