aboutsummaryrefslogtreecommitdiff
path: root/libcxxabi/cmake
AgeCommit message (Collapse)AuthorFilesLines
2019-01-29Merging r352374:Hans Wennborg1-1/+1
------------------------------------------------------------------------ r352374 | mgorny | 2019-01-28 16:16:03 +0100 (Mon, 28 Jan 2019) | 18 lines [cmake] Fix get_llvm_lit_path() to respect LLVM_EXTERNAL_LIT always Refactor the get_llvm_lit_path() logic to respect LLVM_EXTERNAL_LIT, and require the fallback to be defined explicitly as LLVM_DEFAULT_EXTERNAL_LIT. This fixes building libcxx standalone after r346888. The old logic was using LLVM_EXTERNAL_LIT both as user-defined cache variable and an optional pre-definition of default value from caller (e.g. libcxx). It included a hack to make this work by assigning the value back and forth but it was fragile and stopped working in libcxx. The new logic is simpler and more transparent. Default value is provided in a separate variable, and used only when user-specified variable is empty (i.e. not overriden). Differential Revision: https://reviews.llvm.org/D57282 ------------------------------------------------------------------------ llvm-svn: 352498
2018-11-14[CMake] Passthrough CFLAGS when checking the compiler-rt pathPetr Hosek1-0/+3
This is needed when cross-compiling for a different target since CFLAGS may contain additional flags like -resource-dir which change the location in which compiler-rt builtins are found. Differential Revision: https://reviews.llvm.org/D54371 llvm-svn: 346820
2018-06-20[CMake] Convert paths to the right form in standalone builds on WindowsMartin Storsjo2-3/+7
The paths output from llvm-config --cmakedir and from clang --print-libgcc-file-name can contain backslashes, while CMake can't handle the paths in this form. This matches what compiler-rt already does (since SVN r203789 and r293195). Differential Revision: https://reviews.llvm.org/D48355 llvm-svn: 335171
2018-01-17Fix standalone test-suite run.Eric Fiselier1-7/+15
This patch updates libc++abi's HandleOutOfTreeLLVM.cmake to match libc++'s -- and more importantly, to fix a bug where llvm-lit wasn't found/created when libc++abi was built out-of-tree. This prevented the test suite from running. llvm-svn: 322768
2017-06-11build: use cmake to pass -std=c++11Saleem Abdulrasool1-5/+0
Rather than manually checking for support for the spelling of the C++ standard, indicate to CMake that we require that the compiler support C++11 and that we compile without the GNU extensions. This simplifies the flags handling in libc++abi itself by relying on CMake to translate the flag and add it as appropriate. llvm-svn: 305175
2017-06-11build: use POSITION_INDEPENDENT_CODE CMake propertySaleem Abdulrasool1-1/+0
Use the POSITION_INDEPENDENT_CODE target property to indicate that we should be building with -fPIC or the equivalent flag based on the toolchain that we are using. This makes the check more portable and simplifies the flags management. Because we don't want this setting to propagate in the case of an in-tree build, set the property on the targets we construct explicitly rather than setting CMAKE_POSITION_INDEPENDENT_CODE to ON globally. llvm-svn: 305174
2017-06-03[libcxxabi] HandleLLVMOptions in out of tree buildMartell Malone1-0/+1
Differential revision: https://reviews.llvm.org/D33753 llvm-svn: 304664
2017-06-01[libcxxabi] Rework CMakeLists.txt into modulesMartell Malone3-0/+356
Refactor cmake to remove dependence on LLVM's cmake modules. This improves handling of cmake checks when cross compiling and brings libcxxabi in line with libcxx and other project modules. Differential revision: https://reviews.llvm.org/D33635 llvm-svn: 304374
2017-05-26[libcxxabi] iconv is not needed for mingw-w64Martell Malone1-1/+1
llvm-svn: 304026
2017-05-11[Libcxxabi]: Support using compiler-rt for MinGW64Martell Malone1-3/+8
Reviewers: EricWF Differential Revision: https://reviews.llvm.org/D33098 llvm-svn: 302824
2017-05-11Fix Libc++abi linking under MinGW64Eric Fiselier1-1/+4
llvm-svn: 302760
2017-05-11Apply libc++ MinGW CMake fix to libc++abiEric Fiselier1-0/+5
llvm-svn: 302754
2017-04-16[CMake][libcxxabi] Fix the -target and -gcc-toolchain flag handlingPetr Hosek1-1/+1
CMake has the problem with the single dash variant because of the space, so use the double dash with equal sign version. These flag need to be included in compile flags to propagate correctly. We also don't have to pass the target triple when checking for compiler-rt since that flag is already included in compile flags now. Differential Revision: https://reviews.llvm.org/D32069 llvm-svn: 300418
2017-04-07[CMake][libcxxabi] Use -nodefaultlibs for CMake checksPetr Hosek2-5/+91
Since libc++abi is built with -nodefaultlibs, we should be using this option even for CMake checks to avoid any inconsistency and also to avoid dependency on a working C++ standard library just for the setting up the build itself. The implementation is largely similar to the one used by libc++. Differential Revision: https://reviews.llvm.org/D31639 llvm-svn: 299797
2017-03-04Turn on -Wunused-function and cleanup occurancesEric Fiselier1-1/+1
llvm-svn: 296936
2016-08-29[CMake] Trying to fix the bots I brokeChris Bieneman1-1/+1
See: http://lab.llvm.org:8011/builders/libcxx-libcxxabi-x86_64-linux-ubuntu-cxx1z/builds/981/steps/build.libcxxabi/logs/stdio llvm-svn: 280023
2016-08-29[CMake] Use -std=c++11 if supportedChris Bieneman1-0/+5
Summary: This patch adds a check for if -std=c++11 is a supported flag, and adds it to CMAKE_CXX_FLAGS if it is supported. Reviewers: EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24007 llvm-svn: 280021
2016-07-15libc++abi: add a top level option for using CompilerRTSaleem Abdulrasool1-1/+3
Add an option to opt into compiler-rt instead of libgcc. This option defaults to OFF to avoid a behaviour change. It is not possible to mix and match different runtime libraries. Disabling this requires that libc++ is built accordingly. This knob is particularly useful for targets that are GCC by default (i.e. Linux). llvm-svn: 275505
2016-06-02Partially revert r270816: build with -fvisibility=hidden.Eric Fiselier1-1/+0
This patch breaks the ABI on linux when libc++abi.a is statically linked into libc++.so. Certain libc++ symbols get exported from libc++abi.a as hidden and therefore they also get hidden in libc++.so. The symbols is question are: * _ZNKSt3__121__basic_string_commonILb1EE20__throw_out_of_rangeEv * _ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv * _ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv I imagine we just need to fix the visibility for these symbols in the libc++ headers but I'm reverting the patch until it's sorted. llvm-svn: 271500
2016-05-26libc++abi: build with -fvisibility=hiddenSaleem Abdulrasool1-0/+1
Enable building libc++abi with hidden visibility by default. The ABI mandated interfaces (and a few extra) are already set up to be externally visible. This allows us to ensure that any implementation details are not leaked. llvm-svn: 270816
2015-12-14[libc++abi] Use libgcc and libgcc_s to provide _Unwind symbols instead of ↵Eric Fiselier1-1/+1
libgcc_eh.a Summary: libgcc_eh.a cannot be used when building libc++abi as a shared library (the default configuration). See this post for some more discussion: https://gcc.gnu.org/ml/gcc/2012-03/msg00104.html This patch reverts back to using libgcc_s when linking libc++abi.so. Reviewers: danalbert, chandlerc, mclow.lists, ismail, compnerd Subscribers: vkalintiris, cfe-commits Differential Revision: http://reviews.llvm.org/D15440 llvm-svn: 255559
2015-12-10Replace cmake check for printf with a check for fopen.Evgeniy Stepanov1-1/+1
Printf is a builtin, and the check fails with -Werror because of a clang warning about an incompatible redeclaration. llvm-svn: 255186
2015-02-06unwind: use -fno-rtti -fno-exceptions -funwind-tablesSaleem Abdulrasool1-0/+2
RTTI and exceptions are not needed for the unwinder, the use of C++ there is for very specific cases, and does not require dynamic_cast nor does it use exceptions. This avoids unnecessary references to type information being emitted. llvm-svn: 228408
2015-02-05Enable -Wundef.Dan Albert1-0/+1
The problem that caused the need for http://reviews.llvm.org/D7419 was caused by testing the value of something that was undefined. This should prevent that in the future. llvm-svn: 228257
2015-01-22Add -funwind-tables to CMAKE_C_FLAGS.Logan Chien1-0/+2
Without -funwind-tables, the compiler won't generate the unwinding table for these C functions. However, the functions in libunwind, such as `_Unwind_Backtrace()`, WILL unwind stack to get the backtrace. llvm-svn: 226823
2014-12-18[libcxxabi] Add __cxa_thread_atexit for TLS support on Linux.Dan Albert1-0/+2
Summary: Fixes PR21738. The implementation for this is handled by __cxa_thread_atexit_impl, which is supplied by libc. More information: https://sourceware.org/glibc/wiki/Destructor%20support%20for%20thread_local%20variables Reviewers: mclow.lists, EricWF, jroelofs Reviewed By: jroelofs Subscribers: majnemer, cfe-commits Differential Revision: http://reviews.llvm.org/D6708 llvm-svn: 224477
2014-08-18libcxxabi must link to dl if using bundled unwindJonathan Roelofs1-0/+1
Patch by Ismail Donmez http://reviews.llvm.org/D4953 llvm-svn: 215950
2014-07-16libcxxabi cmake: Use HandleLLVMOptions.cmake, don't manually add -std=c++11.Nico Weber1-1/+0
No intended behavior change on Linux and Mac OS X. On Windows, having libcxxabi in one's checkout should now no longer break running cmake. (cl.exe supports c++11, but doesn't understand a -std= flag.) llvm-svn: 213214
2014-07-14Fix for libc++abi when using -Wl,--as-needed.Dan Albert1-0/+2
The cmake files for libc++abi and the unwinder weren't linking against libpthread or an unwind library. If the tests were linked with -Wl,--as-needed, these libraries wouldn't be linked, causing them to fail. Patch contributed by İsmail Dönmez. llvm-svn: 212958
2014-07-10Make cmake cxxflags match those in lib/buildit.Dan Albert1-3/+14
llvm-svn: 212768
2014-07-03Add a cmake build system.Dan Albert1-0/+27
Will add support for tests with lit in a later patch. This does not yet support building the unwinder in src/Unwind. llvm-svn: 212286