aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/clang/0037-Fixes_for_Darwin_SDKs.patch
blob: c6db8d9d512c6ad02bb0b376277c04f2d7713730 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
From cb9b87097803b4444ec9aa52b5054ba88e4da01e Mon Sep 17 00:00:00 2001
From: Dominik Schnitzer <dominik@snap.com>
Date: Wed, 27 Apr 2022 11:22:17 +0000
Subject: [PATCH] Fixes for Darwin SDKs

Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Dominik Schnitzer <dominik@snap.com>
---
 clang/lib/Driver/ToolChains/Darwin.cpp | 17 ++++++++++++-----
 llvm/cmake/modules/AddLLVM.cmake       |  1 -
 llvm/cmake/modules/CrossCompile.cmake  |  2 +-
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index f7da3f187814..0656f5cbad69 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -2299,12 +2299,19 @@ void DarwinClang::AddClangCXXStdlibIncludeArgs(
     case llvm::Triple::x86:
     case llvm::Triple::x86_64:
       IsBaseFound = AddGnuCPlusPlusIncludePaths(DriverArgs, CC1Args, UsrIncludeCxx,
-                                                "4.2.1",
-                                                "i686-apple-darwin10",
-                                                arch == llvm::Triple::x86_64 ? "x86_64" : "");
+                                                "11.4.0",
+                                                "x86_64#SDK_VENDOR#-darwin21",
+                                                "");
       IsBaseFound |= AddGnuCPlusPlusIncludePaths(DriverArgs, CC1Args, UsrIncludeCxx,
-                                                "4.0.0", "i686-apple-darwin8",
-                                                 "");
+                                                "11.4.0", "", "");
+      {
+          const char *S = ::getenv("YOCTO_SDKPATH");
+          if (S && (S[0] != '\0')) {
+              llvm::SmallString<128> Runtime;
+              llvm::sys::path::append(Runtime, S);
+              addSystemInclude(DriverArgs, CC1Args, Runtime);
+          }
+      }
       break;
 
     case llvm::Triple::arm:
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index d34083fa52ec..477dc1ade3fc 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -2137,7 +2137,6 @@ function(llvm_setup_rpath name)
   endif()
 
   if (APPLE)
-    set(_install_name_dir INSTALL_NAME_DIR "@rpath")
     set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
   elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS)
     # $ORIGIN is not interpreted at link time by aix ld.
diff --git a/llvm/cmake/modules/CrossCompile.cmake b/llvm/cmake/modules/CrossCompile.cmake
index 8a441729c943..8e19e4c93d9f 100644
--- a/llvm/cmake/modules/CrossCompile.cmake
+++ b/llvm/cmake/modules/CrossCompile.cmake
@@ -68,7 +68,7 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype)
   endforeach()
 
   add_custom_command(OUTPUT ${${project_name}_${target_name}_BUILD}/CMakeCache.txt
-    COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
+    COMMAND ${CMAKE_COMMAND} -E env --unset=LDFLAGS --unset=CFLAGS --unset=CXXFLAGS --unset=CC --unset=LD --unset=CXX ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
         -DCMAKE_MAKE_PROGRAM="${CMAKE_MAKE_PROGRAM}"
         -DCMAKE_C_COMPILER_LAUNCHER="${CMAKE_C_COMPILER_LAUNCHER}"
         -DCMAKE_CXX_COMPILER_LAUNCHER="${CMAKE_CXX_COMPILER_LAUNCHER}"