2287 Commits

Author SHA1 Message Date
Eric Fiselier
dd2fe4de1d Fix test suite configuration. Sorry Marshall
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251334 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-26 19:08:53 +00:00
Marshall Clow
28ce1c847a Mark LWG#2495 as complete. No code changes needed
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251258 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 20:12:58 +00:00
Marshall Clow
fb7b97cfbb Fix LWG#2489: mem_fn() should be noexcept
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251257 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 20:12:16 +00:00
Marshall Clow
8997b87133 Add the tests for the last commit
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251254 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 19:53:29 +00:00
Marshall Clow
9533a4a80f Fix LWG#2476: scoped_allocator_adaptor is not assignable
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251253 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 19:52:47 +00:00
Marshall Clow
88fa03a06e Add a test for LWG#2466: allocator_traits::max_size() default behavior is incorrect
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251252 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 19:34:04 +00:00
Marshall Clow
175cb20bfb Add a test for LWG#2462: std::ios_base::failure is overspecified
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251250 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-25 19:20:14 +00:00
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