summaryrefslogtreecommitdiffstats
path: root/libcxx/src/include
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] WASI support for libcxxDan Gohman2019-05-011-0/+2
| | | | | | | | | | | | | This adds explicit support for the WASI platform to libcxx. WASI libc uses some components from musl, however it's not fully compatible with musl, so we're planning to stop using _LIBCPP_HAS_MUSL_LIBC and customize for WASI libc specifically. Differential Revision: https://reviews.llvm.org/D61336 Reviewers: sbc100, ldionne llvm-svn: 359703
* Update more file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-194-16/+12
| | | | | | | | | | | | | | | | | | to reflect the new license. These used slightly different spellings that defeated my regular expressions. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351648
* [libc++] Use __int128_t to represent file_time_type.Eric Fiselier2018-07-251-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The ``file_time_type`` time point is used to represent the write times for files. Its job is to act as part of a C++ wrapper for less ideal system interfaces. The underlying filesystem uses the ``timespec`` struct for the same purpose. However, the initial implementation of ``file_time_type`` could not represent either the range or resolution of ``timespec``, making it unsuitable. Fixing this requires an implementation which uses more than 64 bits to store the time point. I primarily considered two solutions: Using ``__int128_t`` and using a arithmetic emulation of ``timespec``. Each has its pros and cons, and both come with more than one complication. However, after a lot of consideration, I decided on using `__int128_t`. This patch implements that change. Please see the [FileTimeType Design Document](http://libcxx.llvm.org/docs/DesignDocs/FileTimeType.html) for more information. Reviewers: mclow.lists, ldionne, joerg, arthur.j.odwyer, EricWF Reviewed By: EricWF Subscribers: christof, K-ballo, cfe-commits, BillyONeal Differential Revision: https://reviews.llvm.org/D49774 llvm-svn: 337960
* Configure ELAST for MinGWPirama Arumuga Nainar2018-06-281-2/+2
| | | | | | | | | | | | | | Summary: Use _LIBCPP_MSVCRT_LIKE while configuring ELAST, so MinGW gets the same configuration as MSVC. Reviewers: compnerd, srhines, danalbert, mstorsjo Subscribers: christof, ldionne, cfe-commits Differential Revision: https://reviews.llvm.org/D48731 llvm-svn: 335916
* [libcxx] Add WebAssembly supportSam Clegg2017-12-161-1/+1
| | | | | | | | | | | | It turns out that this is the only change required in libcxx for it to compile with the new `wasm32-unknown-unknown-wasm` target recently added to Clang. Patch by Nicholas Wilson! Differential Revision: https://reviews.llvm.org/D41073 llvm-svn: 320925
* [libc++] Replace __sync_* functions with __libcpp_atomic_* functionsWeiming Zhao2017-09-192-4/+24
| | | | | | | | | | | | | | | | Summary: This patch replaces __sync_* with __libcpp_atomic_* and adds a wrapper function for __atomic_exchange to support _LIBCPP_HAS_NO_THREADS. Reviewers: EricWF, jroelofs, mclow.lists, compnerd Reviewed By: EricWF, compnerd Subscribers: compnerd, efriedma, cfe-commits, joerg, llvm-commits Differential Revision: https://reviews.llvm.org/D35235 llvm-svn: 313694
* Remove <__refstring> header; Move it into source directory.Eric Fiselier2017-07-121-0/+127
| | | | | | | | | | | | | | | | | | | | The libc++ <__refstring> headers has no real reason why it should be a public header that libc++ ships. The only reason it was in the include directory was because libc++abi needed it to build the library. However keeping <__refstring> a header had other problems, like requiring its dependancies to also be in the headers. For that reason this patch moves it into the source directory. To work around libc++abi's need for this header a duplicated copy was added to libc++abi in r307748. While duplicating the code is an unfortunate solution it's the best solution that's currently possible. In the future I would like to start a discussion on the mailing lists about making libc++abi build as a sub-project of libc++, requiring the libc++ sources always be present. llvm-svn: 307749
* Remove usages of _LIBCPP_MSVC which is never definedEric Fiselier2017-05-101-1/+1
| | | | llvm-svn: 302736
* Refer to _LIBCPP_MSVC macro where applicableSaleem Abdulrasool2017-02-061-1/+1
| | | | | | | | | Replace preprocess conditions of defined(_MSC_VER) && !defined(__clang__) with defined(_LIBCPP_MSVC). NFC. Patch by Dave Lee! llvm-svn: 294171
* system_error: correct ELAST emulation on WindowsSaleem Abdulrasool2017-01-071-1/+1
| | | | | | | | | | ELAST should point to the last valid error string value. However, `_sys_nerr` provides the number of elements in the errlist array. Since the index is 0-based, this is off-by-one. Adjust it accordingly. Thanks to David Majnemer for catching this! llvm-svn: 291336
* config_elast: fix typo (NFC)Saleem Abdulrasool2017-01-051-1/+1
| | | | | | Missed the original typo which was duplicated. NFC. llvm-svn: 291192
* fix elast configuration on Windows targetsSaleem Abdulrasool2017-01-041-1/+3
| | | | | | | A typo and missing header inclusion was obscured by the litany of user defined literal warnings. This fixes the detection of ELAST on windows. llvm-svn: 290941
* clean up use of _WIN32Saleem Abdulrasool2017-01-031-2/+2
| | | | | | | | | Replace the use of _WIN32 in libc++. Replace most use with a C runtime check _LIBCPP_MSVCRT or the new _LIBCPP_WIN32 to indicate that we are using the Win32 API. Use a new _LIBCPP_WCHAR_IS_UCS2 to indicate that we are on an environment that has a short wchar_t. llvm-svn: 290910
* [libcxx] Add support for FuchsiaPetr Hosek2016-10-101-0/+2
| | | | | | | | | Fuchsia is a new operating system which uses musl as the standard C library, libc++ and libc++abi as the C++ standard library. Differential Revision: https://reviews.llvm.org/D25414 llvm-svn: 283788
* Fixing 'Aquire' typo and libcxx build.Ben Craig2016-08-021-1/+1
| | | | llvm-svn: 277456
* Add more missing license headersEric Fiselier2016-01-191-0/+9
| | | | llvm-svn: 258198
* Add placeholder __libcpp_relaxed_store() for when atomic builtins are not ↵Dimitry Andric2015-09-221-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | available. Summary: In rL241532, atomic_support.h was added, which provides handling of atomic operations for libc++. When atomic builtins are not available, it emits a warning about being unsupported, but it still provides a number of stubs for the required functions. However, it misses a stub for `__libcpp_relaxed_store()`. Add it, by using the same implementation as for `__libcpp_atomic_store()`. (Note that I encountered this on arm-freebsd, which still defaults to armv4, and does not have the runtime libcalls to support atomic builtins. For now, I have simply disabled using them.) Reviewers: mclow.lists, EricWF Subscribers: theraven, cfe-commits, jroelofs, majnemer, aemerson Differential Revision: http://reviews.llvm.org/D13051 llvm-svn: 248313
* Move atomic_support.h and config_elast.h into src/includeEric Fiselier2015-08-182-0/+178
llvm-svn: 245354
OpenPOWER on IntegriCloud