aboutsummaryrefslogtreecommitdiff
path: root/contrib/libc++/include/__config
Commit message (Collapse)AuthorAgeFilesLines
* Move all sources from the llvm project into contrib/llvm-project.Dimitry Andric2019-12-201-1425/+0
| | | | | | | | | | | | | 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
* Use __FreeBSD_version to determine if gets() has been removed.John Baldwin2019-10-151-1/+3
| | | | | | | | | | | | | | | | | | | | | 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 <sys/param.h> (in the kernel) or <osreldate.h> (in userland) should be used. This changes the gets() test in libc++ to use __FreeBSD_version from <osreldate.h>. Reported by: jenkins (riscv64 and amd64-gcc) Reviewed by: dim, imp Differential Revision: https://reviews.freebsd.org/D22034 Notes: svn path=/head/; revision=353579
* Partially undo r351659, which unconditionally removed gets(3) from libc++.Dimitry Andric2019-09-191-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/projects/clang900-import/; revision=352538
* Merge libc++ trunk r366426, resolve conflicts, and add FREEBSD-Xlist.Dimitry Andric2019-08-221-157/+130
| | | | Notes: svn path=/projects/clang900-import/; revision=351402
* Merge libc++ trunk r351319, and resolve conflicts.Dimitry Andric2019-01-221-108/+175
| | | | Notes: svn path=/projects/clang800-import/; revision=343309
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ release_70 branchDimitry Andric2018-08-181-23/+43
| | | | | | | | | r339999, resolve conflicts, and bump version numbers. PR: 230240,230355 Notes: svn path=/projects/clang700-import/; revision=338014
* Merge libc++ trunk r338150 (just before the 7.0.0 branch point), andDimitry Andric2018-08-021-1/+5
| | | | | | | resolve conflicts. Notes: svn path=/projects/clang700-import/; revision=337153
* Merge libc++ trunk r338150, and resolve conflicts.Dimitry Andric2018-08-021-431/+494
| | | | Notes: svn path=/projects/clang700-import/; revision=337135
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ release_60 r321788,Dimitry Andric2018-01-061-5/+14
| | | | | | | update build glue and version numbers. Notes: svn path=/projects/clang600-import/; revision=327657
* Merge libc++ trunk r321017 to contrib/libc++.Dimitry Andric2017-12-201-36/+69
| | | | Notes: svn path=/projects/clang600-import/; revision=327039
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and updateDimitry Andric2017-07-191-8/+6
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=321238
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306956, and updateDimitry Andric2017-07-021-6/+0
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320572
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306325, and updateDimitry Andric2017-06-271-2/+13
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320397
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305575, and updateDimitry Andric2017-06-171-3/+7
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320041
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304460, and updateDimitry Andric2017-06-011-1/+33
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319479
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304149, and updateDimitry Andric2017-05-291-0/+4
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319164
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r303197, and updateDimitry Andric2017-05-161-2/+10
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=318384
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r302418, and updateDimitry Andric2017-05-081-1/+81
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=317969
* Merge libc++ trunk r300890, and update build glue.Dimitry Andric2017-04-221-38/+133
| | | | Notes: svn path=/projects/clang500-import/; revision=317287
* Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branchDimitry Andric2017-01-291-9/+0
| | | | | | | r293443, and update build glue. Notes: svn path=/projects/clang400-import/; revision=312967
* Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branchDimitry Andric2017-01-241-2/+2
| | | | | | | r292951, and update build glue. Notes: svn path=/projects/clang400-import/; revision=312719
* Pull in r292833 from upstream libc++ trunk (by Eric Fiselier):Dimitry Andric2017-01-231-1/+8
| | | | | | | | | | | | | | | | | | | | | Manually force the use of __decltype in C++03 with Clang 3.4. <string> uses `decltype` in a way incompatible with `__typeof__`. This is problematic when compiling <string> with Clang 3.4 because even though it provides `__decltype` libc++ still used `__typeof__` because clang 3.4 doesn't provide __is_identifier which libc++ uses to detect __decltype. This patch manually detects Clang 3.4 and properly configures for it. This allows the graphics/openshadinglanguage port to build with lang/clang34. PR: 216054 Notes: svn path=/projects/clang400-import/; revision=312675
* Merge libc++ release_40 branch r292732.Dimitry Andric2017-01-221-0/+12
| | | | Notes: svn path=/projects/clang400-import/; revision=312642
* Merge libc++ release_40 branch r292009.Dimitry Andric2017-01-141-1/+10
| | | | Notes: svn path=/projects/clang400-import/; revision=312200
* Merge libc++ trunk r291476, update Makefile, ObsoleteFiles.inc andDimitry Andric2017-01-091-27/+40
| | | | | | | OptionalObsoleteFiles.inc. Notes: svn path=/projects/clang400-import/; revision=311834
* Merge libc++ r291274, and update the library Makefile.Dimitry Andric2017-01-081-161/+246
| | | | Notes: svn path=/projects/clang400-import/; revision=311696
* Update libc++ to release_39 branch r279689.Dimitry Andric2016-08-301-27/+84
| | | | Notes: svn path=/projects/clang390-import/; revision=305076
* Update libc++ to 3.8.0. Excerpted list of fixes (with upstream revisionDimitry Andric2016-05-261-17/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | numbers): r242679 Implement the plugin-based version of std::search. There are no searchers yet; those are coming soon. r242682 Implement the default searcher for std::experimental::search. r243728 Add <experimental/any> v2. r245330 implement more of N4258 - Cleaning up noexcept in the standard library. Specifically add new noexcept stuff to vector and string's move-assignment operations r245334 Fix PR22606 - Leak pthread_key with static storage duration to ensure all of thread-local destructors are called. r245335 Fix PR23589: std::function doesn't recognize null pointer to varargs function. r247036 Implementation of Boyer-Moore and Boyer-Moore-Horspool searchers for the LFTS. r249325 Implement LWG#2063, and update the issues links to point to the github generated pages r249738 Split <ctype.h> out of <cctype>. r249739 Split <errno.h> out of <cerrno>. r249740 Split <float.h> out of <cfloat>. r249741 Split <inttypes.h> out of <cinttypes>. r249742 Split <math.h> out of <cmath>. r249743 Split <setjmp.h> out of <csetjmp>. r249761 Split <stddef.h> out of <cstddef>. r249798 Split <stdio.h> out of <cstdio>. r249800 Split <stdlib.h> out of <cstdlib>. r249889 Split <wchar.h> out of <cwchar>. r249890 Split <wctype.h> out of <cwctype>. r249929 Split <string.h> out of <cstring>. r250254 ABI versioning macros for libc++. r251246 Fix LWG#2244: basic_istream::seekg r251247 Fix LWG#2127: Move-construction with raw_storage_iterator. r251253 Fix LWG#2476: scoped_allocator_adaptor is not assignable r251257 Fix LWG#2489: mem_fn() should be noexcept r251618 Implement P0004R1 'Remove Deprecated iostreams aliases' r251766 Implement the first part of P0006R0: Adopt Type Traits Variable Templates for C++17. r252195 Implement P0092R1 for C++1z r252350 Allow deque to handle incomplete types. r252406 More of P0006R0: type traits variable aliases for C++17. r252407 Implement LWG#2353: std::next is over-constrained r252905 Implement P0074: Making owner_less more flexible r253215 Implement P0013R1: Logical Operator Type Traits. r253274 Implement P0007: Constant View: A proposal for a std::as_const helper function template. r254119 Add static_assert to set/multiset/map/multimap/forward_list/deque that the allocator's value_type match the container's value_type. r254283 Implement more of P0006; Type Traits Variable Templates. r255941 LWG2485: get() should be overloaded for const tuple&&. r256325 Fix LWG Issue #2367 - Fixing std::tuple and std::pair's default constructors. r256652 Fix for ALL undefined behavior in <list>. r256859 First half of LWG#2354: 'Unnecessary copying when inserting into maps with braced-init syntax' Exp-run: antoine Relnotes: yes Notes: svn path=/head/; revision=300770
* Pull in r255683 from upstream libc++ trunk (by Eric Fiselier):Dimitry Andric2016-03-271-19/+15
| | | | | | | | | | | | | | | | | | | | | | | | | [libcxx] Enable noexcept for GCC 4.6 and greater Summary: This patch allows GCC 4.6 and above to use `noexcept` as opposed to `throw()`. Is it an ABI safe change to suddenly switch on `noexcept`? I imagine it must be because it's disabled in w/ clang in C++03 but not C++11. Reviewers: danalbert, jroelofs, mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D15516 This should fix errors from gcc 4.6 and higher when compiling llvm-cov and/or other llvm tools. Reported by: bdrewery Notes: svn path=/head/; revision=297322
* Pull in r250279 from upstream libc++ trunk (by Eric Fiselier):Dimitry Andric2016-03-111-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix GCC atomic implementation in C++03 Pull in r250802 from upstream libc++ trunk (by Eric Fiselier): Detect relaxed constexpr rules for gcc versions Pull in r255585 from upstream libc++ trunk (by Eric Fiselier): Fix various GCC mis-configurations for newer versions. This patch goes through and enables C++11 and C++14 features for newer GCC's. The main changes are: 1. Turn on variable templates. (Uses __cpp_variable_templates) 2. Assert atomic<Tp> is trivially copyable (Uses _GNUC_VER >= 501). 3. Turn on trailing return support for GCC. (Uses _GNUC_VER >= 404) 4. XFAIL void_t test for GCC 5.1 and 5.2. Fixed in GCC 6. Together, these should fix building clang 3.8.0 as part of building world with recent versions of gcc (e.g. the devel/*-xtoolchain-gcc ports). Notes: svn path=/head/; revision=296687
* Update libc++ to 3.7.0 release.Dimitry Andric2015-09-161-47/+90
| | | | Notes: svn path=/projects/clang370-import/; revision=287877
* Import libc++ trunk r224926. This fixes a number of bugs, completesDimitry Andric2015-01-151-24/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C++14 support[1], adds more C++1z features[2], and fixes the following LWG issues[3]: 1450: Contradiction in regex_constants 2003: String exception inconsistency in erase. 2075: Progress guarantees, lock-free property, and scheduling assumptions 2104: unique_lock move-assignment should not be noexcept 2112: User-defined classes that cannot be derived from 2132: std::function ambiguity 2135: Unclear requirement for exceptions thrown in condition_variable::wait() 2142: packaged_task::operator() synchronization too broad? 2182: Container::[const_]reference types are misleadingly specified 2186: Incomplete action on async/launch::deferred 2188: Reverse iterator does not fully support targets that overload operator& 2193: Default constructors for standard library containers are explicit 2205: Problematic postconditions of regex_match and regex_search 2213: Return value of std::regex_replace 2240: Probable misuse of term "function scope" in [thread.condition] 2252: Strong guarantee on vector::push_back() still broken with C++11? 2257: Simplify container requirements with the new algorithms 2258: a.erase(q1, q2) unable to directly return q2 2263: Comparing iterators and allocator pointers with different const-character 2268: Setting a default argument in the declaration of a member function assign of std::basic_string 2271: regex_traits::lookup_classname specification unclear 2272: quoted should use char_traits::eq for character comparison 2278: User-defined literals for Standard Library types 2280: begin / end for arrays should be constexpr and noexcept 2285: make_reverse_iterator 2288: Inconsistent requirements for shared mutexes 2291: std::hash is vulnerable to collision DoS attack 2293: Wrong facet used by num_put::do_put 2299: Effects of inaccessible key_compare::is_transparent type are not clear 2301: Why is std::tie not constexpr? 2304: Complexity of count in unordered associative containers 2306: match_results::reference should be value_type&, not const value_type& 2308: Clarify container destructor requirements w.r.t. std::array 2313: tuple_size should always derive from integral_constant<size_t, N> 2314: apply() should return decltype(auto) and use decay_t before tuple_size 2315: weak_ptr should be movable 2316: weak_ptr::lock() should be atomic 2317: The type property queries should be UnaryTypeTraits returning size_t 2320: select_on_container_copy_construction() takes allocators, not containers 2322: Associative(initializer_list, stuff) constructors are underspecified 2323: vector::resize(n, t)'s specification should be simplified 2324: Insert iterator constructors should use addressof() 2329: regex_match()/regex_search() with match_results should forbid temporary strings 2330: regex("meow", regex::icase) is technically forbidden but should be permitted 2332: regex_iterator/regex_token_iterator should forbid temporary regexes 2339: Wording issue in nth_element 2341: Inconsistency between basic_ostream::seekp(pos) and basic_ostream::seekp(off, dir) 2344: quoted()'s interaction with padding is unclear 2346: integral_constant's member functions should be marked noexcept 2350: min, max, and minmax should be constexpr 2356: Stability of erasure in unordered associative containers 2357: Remaining "Assignable" requirement 2359: How does regex_constants::nosubs affect basic_regex::mark_count()? 2360: reverse_iterator::operator*() is unimplementable [1] http://libcxx.llvm.org/cxx1y_status.html [2] http://libcxx.llvm.org/cxx1z_status.html [3] http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html Exp-run: antoine MFC after: 1 month Notes: svn path=/head/; revision=277217
* Import patch from libc++ r197313 which allows using libc++ headers with gccBaptiste Daroussin2014-10-131-0/+1
| | | | | | | | Differential Revision: https://reviews.freebsd.org/D942 Reviewed by: imp Notes: svn path=/head/; revision=273066
* An ABI incompatibility crept into the libc++ 3.4 import in r261283. ItDimitry Andric2014-02-121-1/+1
| | | | | | | | | | | | | | | | | | | | was caused by upstream libc++ commit r194536, which aimed to make the headers more standards-compliant, by making std::pair's copy constructor trivial. Unfortunately, this could cause certain C++ applications using shared libraries built against the previous version of libc++ to crash. Fix the ABI incompatibility by making std::pair's copy constructor non-trivial again. Please note: Any C++ applications or shared libraries built with libc++ between r261283 and this revision should be recompiled. Reported by: stefanf MFC after: 3 weeks X-MFC-With: r261283 Notes: svn path=/head/; revision=261801
* Import libc++ 3.4 release. This contains a lot of bugfixes, and someDimitry Andric2014-01-301-26/+119
| | | | | | | | | preliminary support for C++1y. MFC after: 3 weeks Notes: svn path=/head/; revision=261283
* Import new libcxxrt / libc++. This brings some bug fixes, including a ↵David Chisnall2013-07-101-3/+45
| | | | | | | potential race condition for static initialisers. Notes: svn path=/head/; revision=253159
* Merge libc++ trunk r180598. Contains several minor cleanups and bugDimitry Andric2013-04-271-18/+29
| | | | | | | | | fixes, no major changes. MFC after: 2 weeks Notes: svn path=/head/; revision=249998
* Import new libc++ to head. Various small fixes and cleanups.David Chisnall2013-02-071-0/+6
| | | | | | | MFC after: 2 weeks Notes: svn path=/head/; revision=246487
* Pull in r168610 from upstream libc++:Dimitry Andric2012-11-261-0/+3
| | | | | | | | | | | | | | | | | | When using libc++ headers on FreeBSD, in combination with -std=c++98, -ansi or -std=c++03, the long long type is not supported. So in this case, several functions and types, like lldiv_t, strtoll(), are not declared. This should make it possible to use the libc++ headers in c++98 mode. Note: libc++ is originally designed as a c++0x or higher library, so you should still take care when using it with c++98 or c++03. Noted by: Yamaya Takashi <yamayan@kbh.biglobe.ne.jp> MFC after: 1 week Notes: svn path=/head/; revision=243572
* Import new version of libc++ into base.David Chisnall2012-11-131-4/+8
| | | | Notes: svn path=/head/; revision=242945
* Import libc++ trunk r165949. Among other improvements and bug fixes,Dimitry Andric2012-10-221-12/+28
| | | | | | | | | | | | | this has many visibility problems fixed, which should help with compiling certain ports that exercise C++11 mode (i.e. Firefox). Also, belatedly add the LICENSE.TXT and accompanying CREDITS.TXT files, which are referred to in all the source files. MFC after: 1 month Notes: svn path=/head/; revision=241903
* Import new version of libc++. Among other improvements, this comes with anDavid Chisnall2012-05-031-1/+3
| | | | | | | | <atomic> header that works with clang 3.1 (and, importantly, the pre-3.1 snapshot currently in head) Notes: svn path=/head/; revision=234976
* Import a slightly newer libc++, with some bugs fixed that were found by runningDavid Chisnall2012-03-141-0/+4
| | | | | | | | | the test suite on FreeBSD. Approved by: dim (mentor) Notes: svn path=/head/; revision=232972
* Import new versions of libcxxrt and libc++.David Chisnall2012-03-141-2/+36
| | | | | | | | | Please tests any C++ code you care about with -stdlib=libc++! Approved by: dim (mentor) Notes: svn path=/head/; revision=232950
* Import libc++ / libcxxrt into base. Not build by default yet (useDavid Chisnall2011-11-251-0/+405
MK_LIBCPLUSPLUS=yes to enable). This is a work-in-progress. It works for me, but is not guaranteed to work for anyone else and may eat your dog. To build C++ using libc++, add -stdlib=libc++ to your CXX and LD flags. Bug reports welcome, bug fixes even more welcome... Approved by: dim (mentor) Notes: svn path=/head/; revision=227983