summaryrefslogtreecommitdiffstats
path: root/contrib/libc++/src
Commit message (Collapse)AuthorAgeFilesLines
* Remove empty line again from libc++'s iostream.cpp. This was used todim2015-10-091-1/+0
| | | | | force updates to this file, so it will be rebuilt by the fixed clang from r289072.
* Temporarily revert upstream llvm trunk r240144 (by Michael Zolotukhin):dim2015-10-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | [SLP] Vectorize for all-constant entries. This should fix libc++'s iostream initialization SIGBUSing on amd64, whenever the global cout symbol is not aligned to 16 bytes. Some further explanation: libc++'s iostream.cpp contains the definitions of std::cout, std::cerr and so on. These global objects are effectively declared with an alignment of 8 bytes. When an executable is linked against libc++.so, it can sometimes get a copy of the global object, which is then at the same alignment. However, with clang 3.7.0, the initialization of these global objects will incorrectly use SSE instructions (e.g. movdqa), whenever the optimization level is high enough, and SSE is enabled, such as on amd64. When any of these objects is not aligned to 16 bytes, this will result in a SIGBUS during iostream initialization. In contrast, clang 3.6.x and earlier took the 8 byte alignment into consideration, and avoided SSE for those particular operations. After bisecting of upstream changes, I found that the above revision caused the change of this behavior, so I am reverting it now as a workaround, while a discussion and test case is being prepared for upstream.
* Partially revert r288121, removing the workaround for arm < v6. Sincedim2015-09-221-2/+1
| | | | | | | r288125, the required atomic library calls are available in compiler-rt. The added stub for __libcpp_relaxed_store() can stay as a fallback; I have also committed it upstream.
* Work around clang emitting libcalls to __atomic_add_fetch() and friendsdim2015-09-221-1/+9
| | | | | | | | | | in libc++, on __ARM_ARCH < 6. Additionally, supply the missing stub __libcpp_relaxed_store(), as proposed in http://reviews.llvm.org/D13051 NOTE: this needs to be fixed properly later on, by supplying library functions implementing atomic operations for arm < v6. We should probably take those from sys/arm/arm/stdatomic.c, and stuff them into either libgcc or compiler-rt.
* Update libc++ to 3.7.0 release.dim2015-09-1617-188/+562
|
* Import libc++ trunk r224926. This fixes a number of bugs, completesdim2015-01-1522-248/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Do not define bad_array_new_length::bad_array_new_length in libc++ anymorebapt2014-10-211-2/+2
| | | | | when used in combinaison with libcxxrt since it is now defined there already. This fixes building world
* Import libc++ 3.4 release. This contains a lot of bugfixes, and somedim2014-01-3019-150/+525
| | | | | | preliminary support for C++1y. MFC after: 3 weeks
* Import new libcxxrt / libc++. This brings some bug fixes, including a ↵theraven2013-07-107-521/+396
| | | | potential race condition for static initialisers.
* Merge libc++ trunk r180598. Contains several minor cleanups and bugdim2013-04-2714-92/+161
| | | | | | fixes, no major changes. MFC after: 2 weeks
* Import new libc++ to head. Various small fixes and cleanups.theraven2013-02-078-133/+200
| | | | MFC after: 2 weeks
* Import new version of libc++ into base.theraven2012-11-131-3/+3
|
* Import libc++ trunk r165949. Among other improvements and bug fixes,dim2012-10-2216-240/+203
| | | | | | | | | | 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
* Import new version of libc++. Among other improvements, this comes with antheraven2012-05-033-25/+43
| | | | | <atomic> header that works with clang 3.1 (and, importantly, the pre-3.1 snapshot currently in head)
* Import a slightly newer libc++, with some bugs fixed that were found by runningtheraven2012-03-142-10/+11
| | | | | | the test suite on FreeBSD. Approved by: dim (mentor)
* Import new versions of libcxxrt and libc++.theraven2012-03-1417-288/+522
| | | | | | Please tests any C++ code you care about with -stdlib=libc++! Approved by: dim (mentor)
* Import libc++ / libcxxrt into base. Not build by default yet (usetheraven2011-11-2526-0/+10997
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)
OpenPOWER on IntegriCloud