2280 Commits

Author SHA1 Message Date
Marshall Clow
332ab91947 Fix LWG#2127: Move-construction with raw_storage_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251247 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 18:58:07 +00:00
Marshall Clow
dbef2bb1d0 Fix LWG#2244: basic_istream::seekg
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251246 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 18:31:51 +00:00
Marshall Clow
fd33deb083 Update C++ status from Kona
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251220 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 06:02:23 +00:00
Tim Northover
25037cf729 Set LC_COLLATE rather than LANG to override collation.
On a system with LC_COLLATE=C, this takes precedence over a non-C LANG
the test tries to impose and the test fails.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251131 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-23 17:56:08 +00:00
Eric Fiselier
e6d05b65b2 Use proper output directory when naminging the libc++ output
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251100 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-23 07:04:24 +00:00
Eric Fiselier
601d2c1165 Dont required CMake 3 to install a linker script
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251065 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-22 21:24:01 +00:00
Eric Fiselier
1cf5a81b89 Only disable linker script when LIBCXX_CXX_ABI_LIBNAME is none
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251063 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-22 20:54:27 +00:00
Eric Fiselier
5d5b59b826 Disable linker scripts when the ABI library is not specified or is none.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251062 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-22 20:50:07 +00:00
Marshall Clow
ac042ab93d Detect relaxed constexpr rules for gcc versions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250802 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-20 07:37:11 +00:00
Benjamin Kramer
8f6e763c49 Fix an unfortunate yet old typo that never got attention before r250507.
Should fix the xcode libc++ build.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250508 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-16 11:26:26 +00:00
Benjamin Kramer
99290c6ec8 Remove a long-standing __has_include hack.
This was put in to get libc++ building without libcxxabi. We now have
macros that show that we are building against libcxxabi so use that
instead. This guards against existing but broken cxxabi.h headers on the
system.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250507 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-16 11:14:30 +00:00
Eric Fiselier
1d3716a633 Re-enable linker scripts after fixing bad CMake
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250472 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-15 23:04:54 +00:00
Eric Fiselier
a7780301d8 Quickly fix bad commit
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250471 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-15 22:51:50 +00:00
Eric Fiselier
bb856cc357 [libcxx] Make libc++.so a linker script by default on most platforms.
Summary:
This patch turns on `LIBCXX_ENABLE_ABI_LINKER_SCRIPT` by default whenever `LLVM_HAVE_LINK_VERSION_SCRIPT` is ON. This turns out to be whenever:

1. WIN32 is not defined.
2 UNIX is defined.
3. APPLE is not defined.

While `LLVM_HAVE_LINK_VERSION_SCRIPT` is meant to reflect exactly what we are asking I think it's close enough.

After committing this patch Linux users will no longer have to use "-lc++abi" explicitly!




Reviewers: mclow.lists, danalbert, compnerd, jroelofs

Subscribers: emaste, rengolin, cbergstrom, cfe-commits

Differential Revision: http://reviews.llvm.org/D13739

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250469 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-15 22:41:51 +00:00
Eric Fiselier
7b081f6bc5 Fix handling of -Wno-pedantic
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250452 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-15 20:27:15 +00:00
Eric Fiselier
b9aebae3dc Add links to libc++ code coverage and builders
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250361 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-15 03:27:02 +00:00
Eric Fiselier
89c7ec3512 Update issues status
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250336 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 22:26:40 +00:00
Eric Fiselier
a317a1b7cf Use correct CMake variable for the libname
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250329 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 21:20:28 +00:00
Eric Fiselier
d1e2a83a5e Link to new documentation from existing homepage
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250325 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 20:51:33 +00:00
Eric Fiselier
2bc8f6ceeb Update testing guide for libc++
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250323 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 20:44:44 +00:00
Eric Fiselier
8cbf020fdc [libcxx] Make it drastically simpler to link libc++.
Summary:
Currently on most platforms you have to manually link the c++ abi library used with libc++ whenever you use libc++. So your typical libc++ command like invocation might look like:

```
clang++ -stdlib=libc++ foo.cpp -lc++abi
```

Having to manually link `libc++abi.so` makes it harder for libc++ to be used generically. This patch fixes that by generating a linker script for `libc++.so` that correctly links the ABI library. On linux the linker script for libc++abi would look like:

```
# libc++.so
INPUT(libc++.so.1 -lc++abi)
```

With the linker script you can now use libc++ using only `-stdlib=libc++`. This is the technique that is used on FreeBSD in ordered to link cxxrt and I think it's the best approach to make our users lives simpler.

The CMake option used to enable this is `LIBCXX_ENABLE_ABI_LINKER_SCRIPT`. In future I would like to enable this by default on all platforms except for Darwin.

Reviewers: mclow.lists, danalbert, rsmith, jroelofs, EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D12508

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250319 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 19:54:03 +00:00
Eric Fiselier
56c1f9b8e5 Split out config_site logic so libc++abi can use it
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250312 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 19:00:35 +00:00
Eric Fiselier
f0cd203bdc [libcxx] Use __config_site to configure the test suite features.
Summary:
This patch changes the tests to use the "__config_site" header if present instead of manually configuring for each option. This patch also removes the test flags for configuring some of these options. For example "lit -sv --param=enable_threads=OFF" no longer works. However lit will still correctly configure if  the CMake option "-DLIBCXX_ENABLE_THREADS=OFF" is given at build time. 

This patch will fix the libc++abi test configuration for `LIBCXX_ABI_VERSION` and `LIBCXX_ABI_UNSTABLE` one we teach it about 'project_obj_dir' . I would like to land this ASAP to prevent more work blockage.

Reviewers: mclow.lists, danalbert, eugenis, ed, jroelofs

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D13714

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250308 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 18:22:15 +00:00
Eric Fiselier
a4ae16b67a Fix GCC atomic implementation in C++03
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250279 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 08:36:22 +00:00
Eric Fiselier
a6622799b4 Use __config_site when building libc++. Also cleanup ABI versioning doc
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250261 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-14 00:22:05 +00:00
Eric Fiselier
499d87881a Workaround -pedantic flag added by LLVM
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250256 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 23:56:33 +00:00
Evgeniy Stepanov
4f01aa8fb8 ABI versioning macros for libc++.
C++ macros and CMake options that specify the default ABI version of
the library, and can be overridden to pick up new ABI-changing
features.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250254 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 23:48:28 +00:00
Richard Smith
b3b00818e5 Fix use of libc++ <foo.h> headers from within an 'extern "C"' context in C++98.
Previously, this resulted in us declaring a template for static_assert emulation within the 'extern "C"' context, which is ill-formed.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250247 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 23:12:22 +00:00
Eric Fiselier
3759bed447 Fix whitespace in doc
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250238 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 22:22:42 +00:00
Richard Smith
44d1476b6d Remove __config module to avoid #include cycle when libc headers include libc++'s <foo.h> headers.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250236 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 22:13:33 +00:00
Eric Fiselier
73ffc78616 [libcxx] Capture configuration information when installing the libc++ headers
Summary:
Hi all,

This patch is a successor to D11963. However it has changed dramatically and I felt it would be best to start a new review thread.

Please read the design documentation added in this patch for a description of how it works.

Reviewers: mclow.lists, danalbert, jroelofs, EricWF

Subscribers: vkalintiris, rnk, ed, espositofulvio, asl, eugenis, cfe-commits

Differential Revision: http://reviews.llvm.org/D13407

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250235 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-13 22:12:02 +00:00
Marshall Clow
218d017400 Mark 2447 and 2466 as completed.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250061 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-12 16:25:21 +00:00
Chris Bieneman
6bed14b343 [Darwin] Reworking r250003 to use lit.util.capture instead of subprocess.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250007 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-12 02:54:30 +00:00
Chris Bieneman
bf64c23851 [Darwin] Need to add -isysroot on OS X otherwise the tests will fail if you don't have the command line tools package installed.
This mirrors how other LLVM suites are configured for running on OS X.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250003 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-12 00:49:56 +00:00
Eric Fiselier
cb23a49e40 Turn off -pedantic by default when building due to #include_next. :-(
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249939 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 03:34:52 +00:00
Eric Fiselier
42b89c7e05 Revert r249931 - Remove same_decls.pass.cpp because it fails on OS X and in C++03 mode.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249938 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 03:31:23 +00:00
Eric Fiselier
ea33904773 Get some of wchar_h.pass.cpp working on apple.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249936 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 02:54:41 +00:00
Richard Smith
de66c515de Unrevert r249889, and XFAIL the test for Darwin, where the libc apparently doesn't provide a correct overload set for some functions.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249932 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 01:39:51 +00:00
Richard Smith
8b7a6b8995 Add a test that we declare the right set of C library function signatures in ::
and std::, and that the names in :: and std:: are declaring the same entity.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249931 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 01:33:17 +00:00
Richard Smith
9f4f08db91 Split <string.h> out of <cstring>.
Also fix the overload set for the five functions whose signatures change in the
case where we can fix it. This is already covered by existing tests for the
affected systems.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249929 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 01:25:31 +00:00
Manman Ren
e35e663f73 Revert r249889 due to bot failure.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249926 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-10 01:03:55 +00:00
Richard Smith
f2b3629dbf Split <wctype.h> out of <cwctype>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249890 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 19:57:37 +00:00
Richard Smith
26a70eccf2 Split <wchar.h> out of <cwchar>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249889 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 19:56:37 +00:00
Richard Smith
f650ea7131 Split <stdlib.h> out of <cstdlib>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249800 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 01:41:45 +00:00
Richard Smith
ff7ba4da7d Split <stdio.h> out of <cstdio>.
As with <stddef.h>, skip our custom header if __need_FILE or __need___FILE is defined.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249798 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 01:29:09 +00:00
Richard Smith
45bae0b7dc PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249788 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-09 00:26:50 +00:00
Richard Smith
1883b40a07 Fix test failure in C++98 mode due to imperfect static_assert emulation.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249780 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 23:44:26 +00:00
Richard Smith
759cd0e86b Split <stddef.h> out of <cstddef>.
There are a bunch of macros (__need_size_t etc) that request just one piece of
<stddef.h>; if any one of these is defined, we just directly include the
underlying header.

Note that <stddef.h> provides a ::nullptr_t. We don't want that available to
includers of <cstddef>, so instead of following the usual pattern where <cfoo>
includes <foo.h> then pulls things from :: into std:: with using-declarations,
we implement <stddef.h> and <cstddef> separately; both include <__nullptr> for
the definition of std::nullptr_t.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249761 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 22:25:27 +00:00
Richard Smith
4ccd90dd42 Fix incorrect file header. This is <cfenv> not <cctype>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249749 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 21:17:21 +00:00
Richard Smith
ddbf08114a Split <setjmp.h> out of <csetjmp>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249743 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 20:41:26 +00:00