sys-devel/llvm: Fix llvm-config --obj-root on the live ebuild
[gentoo.git] / sys-devel / llvm / files / 9999 / 0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
1 From df2ea14b7c07dd7cf3e33f2e66f36af8af3b425e Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
3 Date: Sat, 20 Aug 2016 23:47:41 +0200
4 Subject: [PATCH 6/9] llvm-config: Clean up exported values, update for shared
5  linking
6
7 Gentoo-specific fixup for llvm-config, including:
8 - wiping build-specific CFLAGS, CXXFLAGS,
9 - updating library suffixes for shared libs,
10 - wiping --system-libs for shared linking,
11 - making --src-root return invalid path (/dev/null),
12 - making --build-mode return "Release" rather than "Gentoo".
13
14 Thanks to Steven Newbury for the initial patch.
15
16 Bug: https://bugs.gentoo.org/565358
17 Bug: https://bugs.gentoo.org/501684
18 ---
19  tools/llvm-config/CMakeLists.txt  | 11 ++++++++---
20  tools/llvm-config/llvm-config.cpp |  9 +++++++--
21  2 files changed, 15 insertions(+), 5 deletions(-)
22
23 diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
24 index 744fa4e..593788a 100644
25 --- a/tools/llvm-config/CMakeLists.txt
26 +++ b/tools/llvm-config/CMakeLists.txt
27 @@ -32,8 +32,12 @@ get_property(COMPILE_FLAGS TARGET llvm-config PROPERTY COMPILE_FLAGS)
28  set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR})
29  set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR})
30  set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
31 -set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
32 -set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}")
33 +# Just use CMAKE_CPP_FLAGS for CFLAGS and CXXFLAGS, otherwise compiler
34 +# specific flags will be set when we don't know what compiler will be used
35 +# with external project utilising llvm-config.  C++ Standard is required.
36 +# TODO: figure out if we can remove -std=c++11 and move it to revdeps.
37 +set(LLVM_CFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
38 +set(LLVM_CXXFLAGS "${CMAKE_CPP_FLAGS} -std=c++11 ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
39  set(LLVM_BUILD_SYSTEM cmake)
40  set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI})
41  set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX}")
42 @@ -46,7 +50,8 @@ endif()
43  # Use the C++ link flags, since they should be a superset of C link flags.
44  set(LLVM_LDFLAGS "${CMAKE_CXX_LINK_FLAGS}")
45  set(LLVM_BUILDMODE ${CMAKE_BUILD_TYPE})
46 -set(LLVM_SYSTEM_LIBS ${SYSTEM_LIBS})
47 +# We don't do static libs, so we don't need to supply any system-libs
48 +set(LLVM_SYSTEM_LIBS "")
49  if(BUILD_SHARED_LIBS)
50    set(LLVM_ENABLE_SHARED ON)
51  else()
52 diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
53 index c63733f..3162091 100644
54 --- a/tools/llvm-config/llvm-config.cpp
55 +++ b/tools/llvm-config/llvm-config.cpp
56 @@ -522,7 +522,8 @@ int main(int argc, char **argv) {
57        } else if (Arg == "--host-target") {
58          OS << Triple::normalize(LLVM_DEFAULT_TARGET_TRIPLE) << '\n';
59        } else if (Arg == "--build-mode") {
60 -        OS << build_mode << '\n';
61 +        // force Release since we force non-standard Gentoo build mode
62 +        OS << "Release" << '\n';
63        } else if (Arg == "--assertion-mode") {
64  #if defined(NDEBUG)
65          OS << "OFF\n";
66 @@ -540,7 +541,11 @@ int main(int argc, char **argv) {
67        } else if (Arg == "--obj-root") {
68          OS << ActivePrefix << '\n';
69        } else if (Arg == "--src-root") {
70 -        OS << LLVM_SRC_ROOT << '\n';
71 +        if (IsInDevelopmentTree) {
72 +          OS << LLVM_SRC_ROOT << '\n';
73 +        } else {
74 +          OS << "/dev/null\n";
75 +        }
76        } else if (Arg == "--link-shared") {
77          LinkMode = LinkModeShared;
78        } else if (Arg == "--link-static") {
79 -- 
80 2.9.3
81