summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2020-07-16 17:49:48 -0700
committerKhem Raj <raj.khem@gmail.com>2020-08-21 10:30:52 -0700
commit9eb6f440732b2043dab469f3987c2122695a764c (patch)
tree652c1981ed804f4a61bbf41eb9ad35a4745b8964
parenta25f1d1288649fb0378ec8837ef811d366dc3910 (diff)
downloadmeta-clang-9eb6f440732b2043dab469f3987c2122695a764c.tar.gz
clang: Update to 11.x release branch
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--conf/layer.conf2
-rw-r--r--recipes-devtools/clang/clang.inc6
-rw-r--r--recipes-devtools/clang/clang/0001-lldb-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch25
-rw-r--r--recipes-devtools/clang/clang/0002-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch13
-rw-r--r--recipes-devtools/clang/clang/0003-compiler-rt-support-a-new-embedded-linux-target.patch7
-rw-r--r--recipes-devtools/clang/clang/0004-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch9
-rw-r--r--recipes-devtools/clang/clang/0005-compiler-rt-Disable-tsan-on-OE-glibc.patch11
-rw-r--r--recipes-devtools/clang/clang/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch25
-rw-r--r--recipes-devtools/clang/clang/0007-llvm-allow-env-override-of-exe-path.patch11
-rw-r--r--recipes-devtools/clang/clang/0008-clang-driver-Check-sysroot-for-ldso-path.patch17
-rw-r--r--recipes-devtools/clang/clang/0009-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch11
-rw-r--r--recipes-devtools/clang/clang/0010-clang-musl-ppc-does-not-support-128-bit-long-double.patch11
-rw-r--r--recipes-devtools/clang/clang/0011-clang-Prepend-trailing-to-sysroot.patch15
-rw-r--r--recipes-devtools/clang/clang/0012-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch12
-rw-r--r--recipes-devtools/clang/clang/0013-clang-Define-releative-gcc-installation-dir.patch11
-rw-r--r--recipes-devtools/clang/clang/0014-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch13
-rw-r--r--recipes-devtools/clang/clang/0015-clang-scan-view-needs-python-2.x.patch7
-rw-r--r--recipes-devtools/clang/clang/0016-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch23
-rw-r--r--recipes-devtools/clang/clang/0017-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch (renamed from recipes-devtools/clang/clang/0018-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch)10
-rw-r--r--recipes-devtools/clang/clang/0017-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch33
-rw-r--r--recipes-devtools/clang/clang/0018-Check-for-atomic-double-intrinsics.patch (renamed from recipes-devtools/clang/clang/0019-Check-for-atomic-double-intrinsics.patch)11
-rw-r--r--recipes-devtools/clang/clang/0019-clang-Enable-SSP-and-PIE-by-default.patch (renamed from recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch)39
-rw-r--r--recipes-devtools/clang/clang/0020-libcxx-Add-compiler-runtime-library-to-link-step-for.patch (renamed from recipes-devtools/clang/clang/0021-libcxx-Add-compiler-runtime-library-to-link-step-for.patch)26
-rw-r--r--recipes-devtools/clang/clang/0021-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch (renamed from recipes-devtools/clang/clang/0022-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch)29
-rw-r--r--recipes-devtools/clang/clang/0022-clang-Fix-resource-dir-location-for-cross-toolchains.patch (renamed from recipes-devtools/clang/clang/0023-clang-Fix-resource-dir-location-for-cross-toolchains.patch)16
-rw-r--r--recipes-devtools/clang/clang/0023-fix-path-to-libffi.patch (renamed from recipes-devtools/clang/clang/0024-fix-path-to-libffi.patch)9
-rw-r--r--recipes-devtools/clang/clang/0024-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch (renamed from recipes-devtools/clang/clang/0025-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch)19
-rw-r--r--recipes-devtools/clang/common.inc18
28 files changed, 235 insertions, 204 deletions
diff --git a/conf/layer.conf b/conf/layer.conf
index c0a422f..febdb6d 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -29,7 +29,7 @@ INHERIT += "clang"
29# Do not include clang in SDK unless user wants to 29# Do not include clang in SDK unless user wants to
30CLANGSDK ??= "0" 30CLANGSDK ??= "0"
31 31
32LLVMVERSION = "10.0.1" 32LLVMVERSION = "11.0.0"
33 33
34require conf/nonclangable.conf 34require conf/nonclangable.conf
35require conf/nonscanable.conf 35require conf/nonscanable.conf
diff --git a/recipes-devtools/clang/clang.inc b/recipes-devtools/clang/clang.inc
index 41ba7bb..344403d 100644
--- a/recipes-devtools/clang/clang.inc
+++ b/recipes-devtools/clang/clang.inc
@@ -4,11 +4,11 @@ LLVM_DIR = "llvm${LLVM_RELEASE}"
4LLVM_GIT ?= "git://github.com/llvm" 4LLVM_GIT ?= "git://github.com/llvm"
5LLVM_GIT_PROTOCOL ?= "https" 5LLVM_GIT_PROTOCOL ?= "https"
6 6
7MAJOR_VER = "10" 7MAJOR_VER = "11"
8MINOR_VER = "0" 8MINOR_VER = "0"
9PATCH_VER = "1" 9PATCH_VER = "0"
10 10
11SRCREV ?= "ef32c611aa214dea855364efd7ba451ec5ec3f74" 11SRCREV ?= "414f32a9e862b11f51063b75729278f8d81b12e9"
12 12
13PV = "${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}" 13PV = "${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}"
14BRANCH = "release/${MAJOR_VER}.x" 14BRANCH = "release/${MAJOR_VER}.x"
diff --git a/recipes-devtools/clang/clang/0001-lldb-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch b/recipes-devtools/clang/clang/0001-lldb-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch
index 1a606f4..9f493ce 100644
--- a/recipes-devtools/clang/clang/0001-lldb-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch
+++ b/recipes-devtools/clang/clang/0001-lldb-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch
@@ -1,7 +1,7 @@
1From 9f0c90da3de0706e3dd699ed0eb92744d4d9ea80 Mon Sep 17 00:00:00 2001 1From 435b79f52c7b20a88a6ec0d9a272a9ffd1b6d80d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 22 May 2017 17:36:16 -0700 3Date: Mon, 22 May 2017 17:36:16 -0700
4Subject: [PATCH] lldb: Add -lxml2 to linker cmdline of xml is found 4Subject: [PATCH 01/24] lldb: Add -lxml2 to linker cmdline of xml is found
5 5
6When cross compiling for systems where static libs 6When cross compiling for systems where static libs
7for libxml are not available cmake's detection mechanism 7for libxml are not available cmake's detection mechanism
@@ -23,15 +23,18 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
23 1 file changed, 1 insertion(+), 1 deletion(-) 23 1 file changed, 1 insertion(+), 1 deletion(-)
24 24
25diff --git a/lldb/source/Host/CMakeLists.txt b/lldb/source/Host/CMakeLists.txt 25diff --git a/lldb/source/Host/CMakeLists.txt b/lldb/source/Host/CMakeLists.txt
26index 2e9bb402227..bfad6703c65 100644 26index add503a5f36..8ddb874c880 100644
27--- a/lldb/source/Host/CMakeLists.txt 27--- a/lldb/source/Host/CMakeLists.txt
28+++ b/lldb/source/Host/CMakeLists.txt 28+++ b/lldb/source/Host/CMakeLists.txt
29@@ -149,7 +149,7 @@ if (APPLE) 29@@ -138,7 +138,7 @@ if (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
30 list(APPEND EXTRA_LIBS xml2) 30 list(APPEND EXTRA_LIBS kvm)
31 else () 31 endif()
32 if (LIBXML2_FOUND) 32 if (LLDB_ENABLE_LIBXML2)
33- list(APPEND EXTRA_LIBS ${LIBXML2_LIBRARIES}) 33- list(APPEND EXTRA_LIBS ${LIBXML2_LIBRARIES})
34+ list(APPEND EXTRA_LIBS xml2) 34+ list(APPEND EXTRA_LIBS xml2)
35 endif() 35 endif()
36 endif ()
37 if (HAVE_LIBDL) 36 if (HAVE_LIBDL)
37 list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
38--
392.27.0
40
diff --git a/recipes-devtools/clang/clang/0002-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch b/recipes-devtools/clang/clang/0002-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch
index 65fb23d..3291369 100644
--- a/recipes-devtools/clang/clang/0002-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch
+++ b/recipes-devtools/clang/clang/0002-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch
@@ -1,7 +1,7 @@
1From a268e2fb21b30cce26f76536bf133b7a706e460f Mon Sep 17 00:00:00 2001 1From ed6cff51a51de8a69f3b326bedc7389bc8a74a8f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 27 Aug 2017 10:37:49 -0700 3Date: Sun, 27 Aug 2017 10:37:49 -0700
4Subject: [PATCH] libcxxabi: Find libunwind headers when 4Subject: [PATCH 02/24] libcxxabi: Find libunwind headers when
5 LIBCXXABI_LIBUNWIND_INCLUDES is set 5 LIBCXXABI_LIBUNWIND_INCLUDES is set
6 6
7Currently, when LIBCXXABI_LIBUNWIND_INCLUDES is set via CMake arguments 7Currently, when LIBCXXABI_LIBUNWIND_INCLUDES is set via CMake arguments
@@ -17,10 +17,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 1 file changed, 11 insertions(+), 10 deletions(-) 17 1 file changed, 11 insertions(+), 10 deletions(-)
18 18
19diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt 19diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt
20index 59d99971a76..b0f51ebee3e 100644 20index 8881a5018dc..2821d1ad346 100644
21--- a/libcxxabi/CMakeLists.txt 21--- a/libcxxabi/CMakeLists.txt
22+++ b/libcxxabi/CMakeLists.txt 22+++ b/libcxxabi/CMakeLists.txt
23@@ -497,14 +497,9 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBCXXABI_C_FLAGS}") 23@@ -442,14 +442,9 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBCXXABI_C_FLAGS}")
24 # Setup Source Code 24 # Setup Source Code
25 #=============================================================================== 25 #===============================================================================
26 26
@@ -36,7 +36,7 @@ index 59d99971a76..b0f51ebee3e 100644
36 PATHS ${LIBCXXABI_LIBUNWIND_INCLUDES} 36 PATHS ${LIBCXXABI_LIBUNWIND_INCLUDES}
37 ${LIBCXXABI_LIBUNWIND_PATH}/include 37 ${LIBCXXABI_LIBUNWIND_PATH}/include
38 ${CMAKE_BINARY_DIR}/${LIBCXXABI_LIBUNWIND_INCLUDES} 38 ${CMAKE_BINARY_DIR}/${LIBCXXABI_LIBUNWIND_INCLUDES}
39@@ -515,15 +510,21 @@ if (LIBCXXABI_USE_LLVM_UNWINDER OR LLVM_NATIVE_ARCH MATCHES ARM) 39@@ -460,15 +455,21 @@ if (LIBCXXABI_USE_LLVM_UNWINDER OR LLVM_NATIVE_ARCH MATCHES ARM)
40 NO_CMAKE_FIND_ROOT_PATH 40 NO_CMAKE_FIND_ROOT_PATH
41 ) 41 )
42 42
@@ -62,3 +62,6 @@ index 59d99971a76..b0f51ebee3e 100644
62 # Add source code. This also contains all of the logic for deciding linker flags 62 # Add source code. This also contains all of the logic for deciding linker flags
63 # soname, etc... 63 # soname, etc...
64 add_subdirectory(src) 64 add_subdirectory(src)
65--
662.27.0
67
diff --git a/recipes-devtools/clang/clang/0003-compiler-rt-support-a-new-embedded-linux-target.patch b/recipes-devtools/clang/clang/0003-compiler-rt-support-a-new-embedded-linux-target.patch
index 4c8bc63..8689276 100644
--- a/recipes-devtools/clang/clang/0003-compiler-rt-support-a-new-embedded-linux-target.patch
+++ b/recipes-devtools/clang/clang/0003-compiler-rt-support-a-new-embedded-linux-target.patch
@@ -1,7 +1,7 @@
1From 57ba81bfe82f18899b1c846bee6276b1b43ce4cf Mon Sep 17 00:00:00 2001 1From 7a7a7d6f730ec71b95475855ff216e431c6cfe1f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 19 Apr 2015 15:16:23 -0700 3Date: Sun, 19 Apr 2015 15:16:23 -0700
4Subject: [PATCH] compiler-rt: support a new embedded linux target 4Subject: [PATCH 03/24] compiler-rt: support a new embedded linux target
5 5
6Signed-off-by: Khem Raj <raj.khem@gmail.com> 6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7--- 7---
@@ -320,3 +320,6 @@ index 00000000000..d0a890075a1
320diff --git a/compiler-rt/make/platform/clang_linux_embedded_test_input.c b/compiler-rt/make/platform/clang_linux_embedded_test_input.c 320diff --git a/compiler-rt/make/platform/clang_linux_embedded_test_input.c b/compiler-rt/make/platform/clang_linux_embedded_test_input.c
321new file mode 100644 321new file mode 100644
322index 00000000000..e69de29bb2d 322index 00000000000..e69de29bb2d
323--
3242.27.0
325
diff --git a/recipes-devtools/clang/clang/0004-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch b/recipes-devtools/clang/clang/0004-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch
index dfbfb53..db934c9 100644
--- a/recipes-devtools/clang/clang/0004-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch
+++ b/recipes-devtools/clang/clang/0004-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch
@@ -1,7 +1,7 @@
1From 1ecabb645e30330b82754b133f685d96c3e1ee42 Mon Sep 17 00:00:00 2001 1From ccf22e891d6a4b74c9845e9dc03b569694af107c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 May 2016 23:11:45 -0700 3Date: Thu, 19 May 2016 23:11:45 -0700
4Subject: [PATCH] compiler-rt: Simplify cross-compilation. Don't use 4Subject: [PATCH 04/24] compiler-rt: Simplify cross-compilation. Don't use
5 native-compiled llvm-config. 5 native-compiled llvm-config.
6 6
7 Note: AddLLVM.cmake does not expose the LLVM source directory. 7 Note: AddLLVM.cmake does not expose the LLVM source directory.
@@ -20,7 +20,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
20 1 file changed, 10 insertions(+), 1 deletion(-) 20 1 file changed, 10 insertions(+), 1 deletion(-)
21 21
22diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt 22diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt
23index 8d768a404f2..1b1a29dc25a 100644 23index fa62814b635..5948ed6fa5e 100644
24--- a/compiler-rt/CMakeLists.txt 24--- a/compiler-rt/CMakeLists.txt
25+++ b/compiler-rt/CMakeLists.txt 25+++ b/compiler-rt/CMakeLists.txt
26@@ -74,7 +74,16 @@ set(COMPILER_RT_BAREMETAL_BUILD OFF CACHE BOOL 26@@ -74,7 +74,16 @@ set(COMPILER_RT_BAREMETAL_BUILD OFF CACHE BOOL
@@ -41,3 +41,6 @@ index 8d768a404f2..1b1a29dc25a 100644
41 if (TARGET intrinsics_gen) 41 if (TARGET intrinsics_gen)
42 # Loading the llvm config causes this target to be imported so place it 42 # Loading the llvm config causes this target to be imported so place it
43 # under the appropriate folder in an IDE. 43 # under the appropriate folder in an IDE.
44--
452.27.0
46
diff --git a/recipes-devtools/clang/clang/0005-compiler-rt-Disable-tsan-on-OE-glibc.patch b/recipes-devtools/clang/clang/0005-compiler-rt-Disable-tsan-on-OE-glibc.patch
index 59d774c..c341d91 100644
--- a/recipes-devtools/clang/clang/0005-compiler-rt-Disable-tsan-on-OE-glibc.patch
+++ b/recipes-devtools/clang/clang/0005-compiler-rt-Disable-tsan-on-OE-glibc.patch
@@ -1,7 +1,7 @@
1From 7730422bbca50431386391ed341c5d5ed649d14e Mon Sep 17 00:00:00 2001 1From 556e35f02d3e92d149c25547ddc7c7cc8f4cdc84 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 18 Jul 2016 08:05:02 +0000 3Date: Mon, 18 Jul 2016 08:05:02 +0000
4Subject: [PATCH] compiler-rt: Disable tsan on OE/glibc 4Subject: [PATCH 05/24] compiler-rt: Disable tsan on OE/glibc
5 5
6It does not build see 6It does not build see
7http://lists.llvm.org/pipermail/llvm-dev/2016-July/102235.html 7http://lists.llvm.org/pipermail/llvm-dev/2016-July/102235.html
@@ -13,10 +13,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 2 files changed, 2 insertions(+), 2 deletions(-) 13 2 files changed, 2 insertions(+), 2 deletions(-)
14 14
15diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake 15diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake
16index 3aad08e8896..a979d38c7a6 100644 16index 2edc1dabd90..ec4b5e7ee93 100644
17--- a/compiler-rt/cmake/config-ix.cmake 17--- a/compiler-rt/cmake/config-ix.cmake
18+++ b/compiler-rt/cmake/config-ix.cmake 18+++ b/compiler-rt/cmake/config-ix.cmake
19@@ -653,7 +653,7 @@ else() 19@@ -692,7 +692,7 @@ else()
20 endif() 20 endif()
21 21
22 if (COMPILER_RT_HAS_SANITIZER_COMMON AND TSAN_SUPPORTED_ARCH AND 22 if (COMPILER_RT_HAS_SANITIZER_COMMON AND TSAN_SUPPORTED_ARCH AND
@@ -38,3 +38,6 @@ index fcd651ebe42..821de915be8 100644
38 set(SUPPORTED_TOOLS) 38 set(SUPPORTED_TOOLS)
39 foreach(SANITIZER_TOOL ${SUPPORTED_TOOLS_INIT}) 39 foreach(SANITIZER_TOOL ${SUPPORTED_TOOLS_INIT})
40 string(TOUPPER ${SANITIZER_TOOL} SANITIZER_TOOL_UPPER) 40 string(TOUPPER ${SANITIZER_TOOL} SANITIZER_TOOL_UPPER)
41--
422.27.0
43
diff --git a/recipes-devtools/clang/clang/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/recipes-devtools/clang/clang/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
index fd58c68..7990ab0 100644
--- a/recipes-devtools/clang/clang/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
+++ b/recipes-devtools/clang/clang/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
@@ -1,8 +1,8 @@
1From c3f0b7eb02d4b13400f0cf8d8e77f9e898f189e9 Mon Sep 17 00:00:00 2001 1From 262adc1859d04c5142da4dfc512204564183090b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 21 May 2016 00:33:20 +0000 3Date: Sat, 21 May 2016 00:33:20 +0000
4Subject: [PATCH] llvm: TargetLibraryInfo: Undefine libc functions if they are 4Subject: [PATCH 06/24] llvm: TargetLibraryInfo: Undefine libc functions if
5 macros 5 they are macros
6 6
7musl defines some functions as macros and not inline functions 7musl defines some functions as macros and not inline functions
8if this is the case then make sure to undefine them 8if this is the case then make sure to undefine them
@@ -13,10 +13,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 1 file changed, 21 insertions(+) 13 1 file changed, 21 insertions(+)
14 14
15diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.def b/llvm/include/llvm/Analysis/TargetLibraryInfo.def 15diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.def b/llvm/include/llvm/Analysis/TargetLibraryInfo.def
16index afed404f04c..876888656f2 100644 16index 3864d495510..cc1b69ef625 100644
17--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.def 17--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.def
18+++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.def 18+++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.def
19@@ -782,6 +782,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl") 19@@ -800,6 +800,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl")
20 TLI_DEFINE_ENUM_INTERNAL(fopen) 20 TLI_DEFINE_ENUM_INTERNAL(fopen)
21 TLI_DEFINE_STRING_INTERNAL("fopen") 21 TLI_DEFINE_STRING_INTERNAL("fopen")
22 /// FILE *fopen64(const char *filename, const char *opentype) 22 /// FILE *fopen64(const char *filename, const char *opentype)
@@ -26,7 +26,7 @@ index afed404f04c..876888656f2 100644
26 TLI_DEFINE_ENUM_INTERNAL(fopen64) 26 TLI_DEFINE_ENUM_INTERNAL(fopen64)
27 TLI_DEFINE_STRING_INTERNAL("fopen64") 27 TLI_DEFINE_STRING_INTERNAL("fopen64")
28 /// int fork(); 28 /// int fork();
29@@ -829,6 +832,9 @@ TLI_DEFINE_STRING_INTERNAL("fseek") 29@@ -847,6 +850,9 @@ TLI_DEFINE_STRING_INTERNAL("fseek")
30 /// int fseeko(FILE *stream, off_t offset, int whence); 30 /// int fseeko(FILE *stream, off_t offset, int whence);
31 TLI_DEFINE_ENUM_INTERNAL(fseeko) 31 TLI_DEFINE_ENUM_INTERNAL(fseeko)
32 TLI_DEFINE_STRING_INTERNAL("fseeko") 32 TLI_DEFINE_STRING_INTERNAL("fseeko")
@@ -36,7 +36,7 @@ index afed404f04c..876888656f2 100644
36 /// int fseeko64(FILE *stream, off64_t offset, int whence) 36 /// int fseeko64(FILE *stream, off64_t offset, int whence)
37 TLI_DEFINE_ENUM_INTERNAL(fseeko64) 37 TLI_DEFINE_ENUM_INTERNAL(fseeko64)
38 TLI_DEFINE_STRING_INTERNAL("fseeko64") 38 TLI_DEFINE_STRING_INTERNAL("fseeko64")
39@@ -839,6 +845,9 @@ TLI_DEFINE_STRING_INTERNAL("fsetpos") 39@@ -857,6 +863,9 @@ TLI_DEFINE_STRING_INTERNAL("fsetpos")
40 TLI_DEFINE_ENUM_INTERNAL(fstat) 40 TLI_DEFINE_ENUM_INTERNAL(fstat)
41 TLI_DEFINE_STRING_INTERNAL("fstat") 41 TLI_DEFINE_STRING_INTERNAL("fstat")
42 /// int fstat64(int filedes, struct stat64 *buf) 42 /// int fstat64(int filedes, struct stat64 *buf)
@@ -46,7 +46,7 @@ index afed404f04c..876888656f2 100644
46 TLI_DEFINE_ENUM_INTERNAL(fstat64) 46 TLI_DEFINE_ENUM_INTERNAL(fstat64)
47 TLI_DEFINE_STRING_INTERNAL("fstat64") 47 TLI_DEFINE_STRING_INTERNAL("fstat64")
48 /// int fstatvfs(int fildes, struct statvfs *buf); 48 /// int fstatvfs(int fildes, struct statvfs *buf);
49@@ -854,6 +863,9 @@ TLI_DEFINE_STRING_INTERNAL("ftell") 49@@ -872,6 +881,9 @@ TLI_DEFINE_STRING_INTERNAL("ftell")
50 TLI_DEFINE_ENUM_INTERNAL(ftello) 50 TLI_DEFINE_ENUM_INTERNAL(ftello)
51 TLI_DEFINE_STRING_INTERNAL("ftello") 51 TLI_DEFINE_STRING_INTERNAL("ftello")
52 /// off64_t ftello64(FILE *stream) 52 /// off64_t ftello64(FILE *stream)
@@ -56,7 +56,7 @@ index afed404f04c..876888656f2 100644
56 TLI_DEFINE_ENUM_INTERNAL(ftello64) 56 TLI_DEFINE_ENUM_INTERNAL(ftello64)
57 TLI_DEFINE_STRING_INTERNAL("ftello64") 57 TLI_DEFINE_STRING_INTERNAL("ftello64")
58 /// int ftrylockfile(FILE *file); 58 /// int ftrylockfile(FILE *file);
59@@ -980,6 +992,9 @@ TLI_DEFINE_STRING_INTERNAL("logl") 59@@ -998,6 +1010,9 @@ TLI_DEFINE_STRING_INTERNAL("logl")
60 TLI_DEFINE_ENUM_INTERNAL(lstat) 60 TLI_DEFINE_ENUM_INTERNAL(lstat)
61 TLI_DEFINE_STRING_INTERNAL("lstat") 61 TLI_DEFINE_STRING_INTERNAL("lstat")
62 /// int lstat64(const char *path, struct stat64 *buf); 62 /// int lstat64(const char *path, struct stat64 *buf);
@@ -66,7 +66,7 @@ index afed404f04c..876888656f2 100644
66 TLI_DEFINE_ENUM_INTERNAL(lstat64) 66 TLI_DEFINE_ENUM_INTERNAL(lstat64)
67 TLI_DEFINE_STRING_INTERNAL("lstat64") 67 TLI_DEFINE_STRING_INTERNAL("lstat64")
68 /// void *malloc(size_t size); 68 /// void *malloc(size_t size);
69@@ -1205,6 +1220,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf") 69@@ -1241,6 +1256,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf")
70 TLI_DEFINE_ENUM_INTERNAL(stat) 70 TLI_DEFINE_ENUM_INTERNAL(stat)
71 TLI_DEFINE_STRING_INTERNAL("stat") 71 TLI_DEFINE_STRING_INTERNAL("stat")
72 /// int stat64(const char *path, struct stat64 *buf); 72 /// int stat64(const char *path, struct stat64 *buf);
@@ -76,7 +76,7 @@ index afed404f04c..876888656f2 100644
76 TLI_DEFINE_ENUM_INTERNAL(stat64) 76 TLI_DEFINE_ENUM_INTERNAL(stat64)
77 TLI_DEFINE_STRING_INTERNAL("stat64") 77 TLI_DEFINE_STRING_INTERNAL("stat64")
78 /// int statvfs(const char *path, struct statvfs *buf); 78 /// int statvfs(const char *path, struct statvfs *buf);
79@@ -1340,6 +1358,9 @@ TLI_DEFINE_STRING_INTERNAL("times") 79@@ -1376,6 +1394,9 @@ TLI_DEFINE_STRING_INTERNAL("times")
80 TLI_DEFINE_ENUM_INTERNAL(tmpfile) 80 TLI_DEFINE_ENUM_INTERNAL(tmpfile)
81 TLI_DEFINE_STRING_INTERNAL("tmpfile") 81 TLI_DEFINE_STRING_INTERNAL("tmpfile")
82 /// FILE *tmpfile64(void) 82 /// FILE *tmpfile64(void)
@@ -86,3 +86,6 @@ index afed404f04c..876888656f2 100644
86 TLI_DEFINE_ENUM_INTERNAL(tmpfile64) 86 TLI_DEFINE_ENUM_INTERNAL(tmpfile64)
87 TLI_DEFINE_STRING_INTERNAL("tmpfile64") 87 TLI_DEFINE_STRING_INTERNAL("tmpfile64")
88 /// int toascii(int c); 88 /// int toascii(int c);
89--
902.27.0
91
diff --git a/recipes-devtools/clang/clang/0007-llvm-allow-env-override-of-exe-path.patch b/recipes-devtools/clang/clang/0007-llvm-allow-env-override-of-exe-path.patch
index 804cde9..39e6166 100644
--- a/recipes-devtools/clang/clang/0007-llvm-allow-env-override-of-exe-path.patch
+++ b/recipes-devtools/clang/clang/0007-llvm-allow-env-override-of-exe-path.patch
@@ -1,7 +1,7 @@
1From f9e72bc861144d8f77505ce833fc0c8397520e9b Mon Sep 17 00:00:00 2001 1From fdc01a13dddebef34e5cc037484dd368b9985d63 Mon Sep 17 00:00:00 2001
2From: Martin Kelly <mkelly@xevo.com> 2From: Martin Kelly <mkelly@xevo.com>
3Date: Fri, 19 May 2017 00:22:57 -0700 3Date: Fri, 19 May 2017 00:22:57 -0700
4Subject: [PATCH] llvm: allow env override of exe path 4Subject: [PATCH 07/24] llvm: allow env override of exe path
5 5
6When using a native llvm-config from inside a sysroot, we need llvm-config to 6When using a native llvm-config from inside a sysroot, we need llvm-config to
7return the libraries, include directories, etc. from inside the sysroot rather 7return the libraries, include directories, etc. from inside the sysroot rather
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 7 insertions(+) 15 1 file changed, 7 insertions(+)
16 16
17diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp 17diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
18index 6c31df3e173..f34f3a935ad 100644 18index 7e74b7c9081..8aa541aae38 100644
19--- a/llvm/tools/llvm-config/llvm-config.cpp 19--- a/llvm/tools/llvm-config/llvm-config.cpp
20+++ b/llvm/tools/llvm-config/llvm-config.cpp 20+++ b/llvm/tools/llvm-config/llvm-config.cpp
21@@ -225,6 +225,13 @@ Typical components:\n\ 21@@ -248,6 +248,13 @@ Typical components:\n\
22 22
23 /// Compute the path to the main executable. 23 /// Compute the path to the main executable.
24 std::string GetExecutablePath(const char *Argv0) { 24 std::string GetExecutablePath(const char *Argv0) {
@@ -32,3 +32,6 @@ index 6c31df3e173..f34f3a935ad 100644
32 // This just needs to be some symbol in the binary; C++ doesn't 32 // This just needs to be some symbol in the binary; C++ doesn't
33 // allow taking the address of ::main however. 33 // allow taking the address of ::main however.
34 void *P = (void *)(intptr_t)GetExecutablePath; 34 void *P = (void *)(intptr_t)GetExecutablePath;
35--
362.27.0
37
diff --git a/recipes-devtools/clang/clang/0008-clang-driver-Check-sysroot-for-ldso-path.patch b/recipes-devtools/clang/clang/0008-clang-driver-Check-sysroot-for-ldso-path.patch
index 2d0cb1c..ec5dc42 100644
--- a/recipes-devtools/clang/clang/0008-clang-driver-Check-sysroot-for-ldso-path.patch
+++ b/recipes-devtools/clang/clang/0008-clang-driver-Check-sysroot-for-ldso-path.patch
@@ -1,7 +1,7 @@
1From 2aa9b771b258b45e7de0bef6a99bcdd248ce3b17 Mon Sep 17 00:00:00 2001 1From 2b6da98883ad4d97df3016d89edff4c5cf9c1324 Mon Sep 17 00:00:00 2001
2From: Dan McGregor <dan.mcgregor@usask.ca> 2From: Dan McGregor <dan.mcgregor@usask.ca>
3Date: Wed, 26 Apr 2017 20:29:41 -0600 3Date: Wed, 26 Apr 2017 20:29:41 -0600
4Subject: [PATCH] clang: driver: Check sysroot for ldso path 4Subject: [PATCH 08/24] clang: driver: Check sysroot for ldso path
5 5
6OE does not necessarily follow the default path for the dynamic linker, 6OE does not necessarily follow the default path for the dynamic linker,
7therefore adjust it for OE. Check for the default path, and if it isn't 7therefore adjust it for OE. Check for the default path, and if it isn't
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 16 insertions(+) 14 1 file changed, 16 insertions(+)
15 15
16diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 16diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
17index bff1ab1009b..02e3d676567 100644 17index 180350476c3..8606705b721 100644
18--- a/clang/lib/Driver/ToolChains/Linux.cpp 18--- a/clang/lib/Driver/ToolChains/Linux.cpp
19+++ b/clang/lib/Driver/ToolChains/Linux.cpp 19+++ b/clang/lib/Driver/ToolChains/Linux.cpp
20@@ -596,11 +596,19 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 20@@ -499,11 +499,19 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
21 LibDir = "lib64"; 21 LibDir = "lib64";
22 Loader = 22 Loader =
23 (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1"; 23 (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
@@ -37,7 +37,7 @@ index bff1ab1009b..02e3d676567 100644
37 break; 37 break;
38 case llvm::Triple::riscv32: { 38 case llvm::Triple::riscv32: {
39 StringRef ABIName = tools::riscv::getRISCVABI(Args, Triple); 39 StringRef ABIName = tools::riscv::getRISCVABI(Args, Triple);
40@@ -622,6 +630,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 40@@ -525,6 +533,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
41 case llvm::Triple::sparcv9: 41 case llvm::Triple::sparcv9:
42 LibDir = "lib64"; 42 LibDir = "lib64";
43 Loader = "ld-linux.so.2"; 43 Loader = "ld-linux.so.2";
@@ -48,7 +48,7 @@ index bff1ab1009b..02e3d676567 100644
48 break; 48 break;
49 case llvm::Triple::systemz: 49 case llvm::Triple::systemz:
50 LibDir = "lib"; 50 LibDir = "lib";
51@@ -636,6 +648,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 51@@ -539,6 +551,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
52 52
53 LibDir = X32 ? "libx32" : "lib64"; 53 LibDir = X32 ? "libx32" : "lib64";
54 Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2"; 54 Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
@@ -58,4 +58,7 @@ index bff1ab1009b..02e3d676567 100644
58+ } 58+ }
59 break; 59 break;
60 } 60 }
61 } 61 case llvm::Triple::ve:
62--
632.27.0
64
diff --git a/recipes-devtools/clang/clang/0009-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch b/recipes-devtools/clang/clang/0009-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch
index 51ce720..2ab33a3 100644
--- a/recipes-devtools/clang/clang/0009-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch
+++ b/recipes-devtools/clang/clang/0009-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch
@@ -1,7 +1,7 @@
1From 42800fd6bf0040ddd0abf280ea205407e9e004b5 Mon Sep 17 00:00:00 2001 1From 157f27cb0796c8af04177e8472627207dde0950f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 May 2016 21:11:06 -0700 3Date: Thu, 19 May 2016 21:11:06 -0700
4Subject: [PATCH] clang: Driver/tools.cpp: Add -lssp_nonshared on musl 4Subject: [PATCH 09/24] clang: Driver/tools.cpp: Add -lssp_nonshared on musl
5 5
6musl driver will need to add ssp_nonshared for stack_check_local 6musl driver will need to add ssp_nonshared for stack_check_local
7on the linker cmdline when using stack protector commands on 7on the linker cmdline when using stack protector commands on
@@ -13,10 +13,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 1 file changed, 6 insertions(+) 13 1 file changed, 6 insertions(+)
14 14
15diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp 15diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
16index da197e47662..4821cfebc21 100644 16index c8a7fce07ef..48723c507a1 100644
17--- a/clang/lib/Driver/ToolChains/Gnu.cpp 17--- a/clang/lib/Driver/ToolChains/Gnu.cpp
18+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 18+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
19@@ -583,6 +583,12 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, 19@@ -630,6 +630,12 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
20 if (IsIAMCU) 20 if (IsIAMCU)
21 CmdArgs.push_back("-lgloss"); 21 CmdArgs.push_back("-lgloss");
22 22
@@ -29,3 +29,6 @@ index da197e47662..4821cfebc21 100644
29 if (IsStatic || IsStaticPIE) 29 if (IsStatic || IsStaticPIE)
30 CmdArgs.push_back("--end-group"); 30 CmdArgs.push_back("--end-group");
31 else 31 else
32--
332.27.0
34
diff --git a/recipes-devtools/clang/clang/0010-clang-musl-ppc-does-not-support-128-bit-long-double.patch b/recipes-devtools/clang/clang/0010-clang-musl-ppc-does-not-support-128-bit-long-double.patch
index 2de6618..c402b8b 100644
--- a/recipes-devtools/clang/clang/0010-clang-musl-ppc-does-not-support-128-bit-long-double.patch
+++ b/recipes-devtools/clang/clang/0010-clang-musl-ppc-does-not-support-128-bit-long-double.patch
@@ -1,7 +1,7 @@
1From d4719b78a4d59d572b9de7397d8179a5ed7460e9 Mon Sep 17 00:00:00 2001 1From ae0fcdcf66b3b633dd48a69cf5e0e2e905d184e0 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 10 May 2016 02:00:11 -0700 3Date: Tue, 10 May 2016 02:00:11 -0700
4Subject: [PATCH] clang: musl/ppc does not support 128-bit long double 4Subject: [PATCH 10/24] clang: musl/ppc does not support 128-bit long double
5 5
6Signed-off-by: Khem Raj <raj.khem@gmail.com> 6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7--- 7---
@@ -9,10 +9,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
9 1 file changed, 4 insertions(+) 9 1 file changed, 4 insertions(+)
10 10
11diff --git a/clang/lib/Basic/Targets/PPC.h b/clang/lib/Basic/Targets/PPC.h 11diff --git a/clang/lib/Basic/Targets/PPC.h b/clang/lib/Basic/Targets/PPC.h
12index 270aa7ff918..8b1bb167818 100644 12index 858059bacb8..1d0d2ee65ea 100644
13--- a/clang/lib/Basic/Targets/PPC.h 13--- a/clang/lib/Basic/Targets/PPC.h
14+++ b/clang/lib/Basic/Targets/PPC.h 14+++ b/clang/lib/Basic/Targets/PPC.h
15@@ -364,6 +364,10 @@ public: 15@@ -382,6 +382,10 @@ public:
16 LongDoubleFormat = &llvm::APFloat::IEEEdouble(); 16 LongDoubleFormat = &llvm::APFloat::IEEEdouble();
17 } 17 }
18 18
@@ -23,3 +23,6 @@ index 270aa7ff918..8b1bb167818 100644
23 // PPC32 supports atomics up to 4 bytes. 23 // PPC32 supports atomics up to 4 bytes.
24 MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 32; 24 MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 32;
25 } 25 }
26--
272.27.0
28
diff --git a/recipes-devtools/clang/clang/0011-clang-Prepend-trailing-to-sysroot.patch b/recipes-devtools/clang/clang/0011-clang-Prepend-trailing-to-sysroot.patch
index 418afba..0692cf6 100644
--- a/recipes-devtools/clang/clang/0011-clang-Prepend-trailing-to-sysroot.patch
+++ b/recipes-devtools/clang/clang/0011-clang-Prepend-trailing-to-sysroot.patch
@@ -1,7 +1,7 @@
1From 90ac3c6f6407ed40aa76e779ddbcfc0d24c58780 Mon Sep 17 00:00:00 2001 1From d9abc62bb1e99f56df20194122a1aac5a74d0282 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 16 Mar 2017 09:02:13 -0700 3Date: Thu, 16 Mar 2017 09:02:13 -0700
4Subject: [PATCH] clang: Prepend trailing '/' to sysroot 4Subject: [PATCH 11/24] clang: Prepend trailing '/' to sysroot
5 5
6This is needed to handle a case where clang 6This is needed to handle a case where clang
7isntall and target sysroot are perilously same 7isntall and target sysroot are perilously same
@@ -24,15 +24,18 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
24 1 file changed, 1 insertion(+), 1 deletion(-) 24 1 file changed, 1 insertion(+), 1 deletion(-)
25 25
26diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 26diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
27index 02e3d676567..d95da11e351 100644 27index 8606705b721..d908e40d86e 100644
28--- a/clang/lib/Driver/ToolChains/Linux.cpp 28--- a/clang/lib/Driver/ToolChains/Linux.cpp
29+++ b/clang/lib/Driver/ToolChains/Linux.cpp 29+++ b/clang/lib/Driver/ToolChains/Linux.cpp
30@@ -223,7 +223,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) 30@@ -214,7 +214,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
31 Multilibs = GCCInstallation.getMultilibs(); 31 Multilibs = GCCInstallation.getMultilibs();
32 SelectedMultilib = GCCInstallation.getMultilib(); 32 SelectedMultilib = GCCInstallation.getMultilib();
33 llvm::Triple::ArchType Arch = Triple.getArch(); 33 llvm::Triple::ArchType Arch = Triple.getArch();
34- std::string SysRoot = computeSysRoot(); 34- std::string SysRoot = computeSysRoot();
35+ std::string SysRoot = computeSysRoot() + "/"; 35+ std::string SysRoot = computeSysRoot() + "/";
36 ToolChain::path_list &PPaths = getProgramPaths();
36 37
37 // Cross-compiling binutils and GCC installations (vanilla and openSUSE at 38 Generic_GCC::PushPPaths(PPaths);
38 // least) put various tools in a triple-prefixed directory off of the parent 39--
402.27.0
41
diff --git a/recipes-devtools/clang/clang/0012-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch b/recipes-devtools/clang/clang/0012-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch
index 9316157..2889bcf 100644
--- a/recipes-devtools/clang/clang/0012-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch
+++ b/recipes-devtools/clang/clang/0012-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch
@@ -1,7 +1,8 @@
1From 805b4ce637faedee91bb92fdae273b01bd5aa363 Mon Sep 17 00:00:00 2001 1From 30b2a171ab5b3649ae34d1ccab4920435ef4167e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 16 Mar 2017 19:06:26 -0700 3Date: Thu, 16 Mar 2017 19:06:26 -0700
4Subject: [PATCH] clang: Look inside the target sysroot for compiler runtime 4Subject: [PATCH 12/24] clang: Look inside the target sysroot for compiler
5 runtime
5 6
6In OE compiler-rt and libc++ are built and staged into target 7In OE compiler-rt and libc++ are built and staged into target
7sysroot and not into resourcedir which is relative to clang 8sysroot and not into resourcedir which is relative to clang
@@ -15,7 +16,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 5 insertions(+), 1 deletion(-) 16 1 file changed, 5 insertions(+), 1 deletion(-)
16 17
17diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp 18diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
18index cab97b1a601..059a5e62c40 100644 19index b8c12fc9241..ee53fd4925f 100644
19--- a/clang/lib/Driver/ToolChain.cpp 20--- a/clang/lib/Driver/ToolChain.cpp
20+++ b/clang/lib/Driver/ToolChain.cpp 21+++ b/clang/lib/Driver/ToolChain.cpp
21@@ -14,6 +14,7 @@ 22@@ -14,6 +14,7 @@
@@ -26,7 +27,7 @@ index cab97b1a601..059a5e62c40 100644
26 #include "clang/Config/config.h" 27 #include "clang/Config/config.h"
27 #include "clang/Driver/Action.h" 28 #include "clang/Driver/Action.h"
28 #include "clang/Driver/Driver.h" 29 #include "clang/Driver/Driver.h"
29@@ -379,7 +380,10 @@ StringRef ToolChain::getOSLibName() const { 30@@ -397,7 +398,10 @@ StringRef ToolChain::getOSLibName() const {
30 } 31 }
31 32
32 std::string ToolChain::getCompilerRTPath() const { 33 std::string ToolChain::getCompilerRTPath() const {
@@ -38,3 +39,6 @@ index cab97b1a601..059a5e62c40 100644
38 if (Triple.isOSUnknown()) { 39 if (Triple.isOSUnknown()) {
39 llvm::sys::path::append(Path, "lib"); 40 llvm::sys::path::append(Path, "lib");
40 } else { 41 } else {
42--
432.27.0
44
diff --git a/recipes-devtools/clang/clang/0013-clang-Define-releative-gcc-installation-dir.patch b/recipes-devtools/clang/clang/0013-clang-Define-releative-gcc-installation-dir.patch
index b1b3f05..c23c882 100644
--- a/recipes-devtools/clang/clang/0013-clang-Define-releative-gcc-installation-dir.patch
+++ b/recipes-devtools/clang/clang/0013-clang-Define-releative-gcc-installation-dir.patch
@@ -1,7 +1,7 @@
1From 56a43865d296b6b3293cd35f3e4732dac8b00523 Mon Sep 17 00:00:00 2001 1From 7d7eb4b90e924649f317233fd87c3b700f98d4c0 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 21 May 2017 15:38:25 -0700 3Date: Sun, 21 May 2017 15:38:25 -0700
4Subject: [PATCH] clang: Define / releative gcc installation dir 4Subject: [PATCH 13/24] clang: Define / releative gcc installation dir
5 5
6This is required for OE gcc installation to work. 6This is required for OE gcc installation to work.
7Without this its not able to find the paths for libgcc 7Without this its not able to find the paths for libgcc
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 3 insertions(+) 14 1 file changed, 3 insertions(+)
15 15
16diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp 16diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
17index 4821cfebc21..0c8d9e2f475 100644 17index 48723c507a1..d02e644c720 100644
18--- a/clang/lib/Driver/ToolChains/Gnu.cpp 18--- a/clang/lib/Driver/ToolChains/Gnu.cpp
19+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 19+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
20@@ -2428,6 +2428,9 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( 20@@ -2481,6 +2481,9 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple(
21 {"gcc-cross/" + CandidateTriple.str(), "../..", 21 {"gcc-cross/" + CandidateTriple.str(), "../..",
22 TargetTriple.getOS() != llvm::Triple::Solaris}, 22 TargetTriple.getOS() != llvm::Triple::Solaris},
23 23
@@ -27,3 +27,6 @@ index 4821cfebc21..0c8d9e2f475 100644
27 // The Freescale PPC SDK has the gcc libraries in 27 // The Freescale PPC SDK has the gcc libraries in
28 // <sysroot>/usr/lib/<triple>/x.y.z so have a look there as well. Only do 28 // <sysroot>/usr/lib/<triple>/x.y.z so have a look there as well. Only do
29 // this on Freescale triples, though, since some systems put a *lot* of 29 // this on Freescale triples, though, since some systems put a *lot* of
30--
312.27.0
32
diff --git a/recipes-devtools/clang/clang/0014-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch b/recipes-devtools/clang/clang/0014-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch
index 71c1c52..c363b15 100644
--- a/recipes-devtools/clang/clang/0014-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch
+++ b/recipes-devtools/clang/clang/0014-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch
@@ -1,7 +1,7 @@
1From b11d1668890778d6d55cadeaec4f6c2e291b583b Mon Sep 17 00:00:00 2001 1From 9413eabd3659763c550d6beb2d5290228758a53b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 16 Aug 2017 15:16:15 -0700 3Date: Wed, 16 Aug 2017 15:16:15 -0700
4Subject: [PATCH] clang: Fix ldso for musl on x86 and x32 architectures 4Subject: [PATCH 14/24] clang: Fix ldso for musl on x86 and x32 architectures
5 5
6x32 linker is called ld-musl-x32.so.1 and x86 linker 6x32 linker is called ld-musl-x32.so.1 and x86 linker
7is called ld-musl-i386.so.1, Currently, linker for 7is called ld-musl-i386.so.1, Currently, linker for
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 8 insertions(+) 14 1 file changed, 8 insertions(+)
15 15
16diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 16diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
17index d95da11e351..0a4644dab9f 100644 17index d908e40d86e..add122d5cc8 100644
18--- a/clang/lib/Driver/ToolChains/Linux.cpp 18--- a/clang/lib/Driver/ToolChains/Linux.cpp
19+++ b/clang/lib/Driver/ToolChains/Linux.cpp 19+++ b/clang/lib/Driver/ToolChains/Linux.cpp
20@@ -519,6 +519,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 20@@ -422,6 +422,7 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
21 if (Triple.isMusl()) { 21 if (Triple.isMusl()) {
22 std::string ArchName; 22 std::string ArchName;
23 bool IsArm = false; 23 bool IsArm = false;
@@ -25,7 +25,7 @@ index d95da11e351..0a4644dab9f 100644
25 25
26 switch (Arch) { 26 switch (Arch) {
27 case llvm::Triple::arm: 27 case llvm::Triple::arm:
28@@ -531,6 +532,13 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 28@@ -434,6 +435,13 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
29 ArchName = "armeb"; 29 ArchName = "armeb";
30 IsArm = true; 30 IsArm = true;
31 break; 31 break;
@@ -39,3 +39,6 @@ index d95da11e351..0a4644dab9f 100644
39 default: 39 default:
40 ArchName = Triple.getArchName().str(); 40 ArchName = Triple.getArchName().str();
41 } 41 }
42--
432.27.0
44
diff --git a/recipes-devtools/clang/clang/0015-clang-scan-view-needs-python-2.x.patch b/recipes-devtools/clang/clang/0015-clang-scan-view-needs-python-2.x.patch
index 7b762f1..3cac628 100644
--- a/recipes-devtools/clang/clang/0015-clang-scan-view-needs-python-2.x.patch
+++ b/recipes-devtools/clang/clang/0015-clang-scan-view-needs-python-2.x.patch
@@ -1,7 +1,7 @@
1From 0f969665b80310b90bcb304b2e60c4493687c5a6 Mon Sep 17 00:00:00 2001 1From fa612803a3b55d763ad5498babd2f6bc81c6109b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 15 May 2018 10:28:43 -0700 3Date: Tue, 15 May 2018 10:28:43 -0700
4Subject: [PATCH] clang: scan-view needs python 2.x 4Subject: [PATCH 15/24] clang: scan-view needs python 2.x
5 5
6Some distributions e.g. archlinux have switched to pointing 6Some distributions e.g. archlinux have switched to pointing
7python to python3, therefore its better to be specific about 7python to python3, therefore its better to be specific about
@@ -22,3 +22,6 @@ index 6165432e7af..04ad518a60c 100755
22 22
23 from __future__ import print_function 23 from __future__ import print_function
24 24
25--
262.27.0
27
diff --git a/recipes-devtools/clang/clang/0016-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch b/recipes-devtools/clang/clang/0016-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch
index b77f433..a57ffb3 100644
--- a/recipes-devtools/clang/clang/0016-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch
+++ b/recipes-devtools/clang/clang/0016-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch
@@ -1,8 +1,8 @@
1From a1fa38408f7524c8452709574b3d83b72ebcfa38 Mon Sep 17 00:00:00 2001 1From a1d6f91cac4f24890081be8f594eef7ef09919e3 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 31 Jul 2019 22:51:39 -0700 3Date: Wed, 31 Jul 2019 22:51:39 -0700
4Subject: [PATCH] clang: Add -lpthread and -ldl along with -lunwind for static 4Subject: [PATCH 16/24] clang: Add -lpthread and -ldl along with -lunwind for
5 linking 5 static linking
6 6
7When doing static liking with --unwindlib=libunwind -static we encounter 7When doing static liking with --unwindlib=libunwind -static we encounter
8undefined symbols 8undefined symbols
@@ -20,15 +20,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
20 1 file changed, 6 insertions(+), 1 deletion(-) 20 1 file changed, 6 insertions(+), 1 deletion(-)
21 21
22diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp 22diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
23index 37ec7346857..c849b2242e9 100644 23index 1cac5a0822a..29fe4a33a14 100644
24--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp 24--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
25+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp 25+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
26@@ -1211,8 +1211,13 @@ static void AddUnwindLibrary(const ToolChain &TC, const Driver &D, 26@@ -1275,8 +1275,13 @@ static void AddUnwindLibrary(const ToolChain &TC, const Driver &D,
27 case ToolChain::UNW_CompilerRT: 27 // Let the linker choose between libunwind.dll.a and libunwind.a
28 if (LGT == LibGccType::StaticLibGcc) 28 // depending on what's available, and depending on the -static flag
29 CmdArgs.push_back("-l:libunwind.a"); 29 CmdArgs.push_back("-lunwind");
30- else 30- } else
31+ else { 31+ } else {
32 CmdArgs.push_back("-l:libunwind.so"); 32 CmdArgs.push_back("-l:libunwind.so");
33+ if (Args.hasArg(options::OPT_static)) { 33+ if (Args.hasArg(options::OPT_static)) {
34+ CmdArgs.push_back("-lpthread"); 34+ CmdArgs.push_back("-lpthread");
@@ -38,3 +38,6 @@ index 37ec7346857..c849b2242e9 100644
38 break; 38 break;
39 } 39 }
40 40
41--
422.27.0
43
diff --git a/recipes-devtools/clang/clang/0018-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch b/recipes-devtools/clang/clang/0017-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch
index de92b2f..5b55c4e 100644
--- a/recipes-devtools/clang/clang/0018-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch
+++ b/recipes-devtools/clang/clang/0017-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch
@@ -1,7 +1,8 @@
1From a415287545ffe17f7dbc743a033877fd239856b5 Mon Sep 17 00:00:00 2001 1From f6bbe3e375104b495d7b0340d9df2c08f853c290 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com> 2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Thu, 26 Dec 2019 12:56:16 -0800 3Date: Thu, 26 Dec 2019 12:56:16 -0800
4Subject: [PATCH] Pass PYTHON_EXECUTABLE when cross compiling for native build 4Subject: [PATCH 17/24] Pass PYTHON_EXECUTABLE when cross compiling for native
5 build
5 6
6Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> 7Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
7Signed-off-by: Khem Raj <raj.khem@gmail.com> 8Signed-off-by: Khem Raj <raj.khem@gmail.com>
@@ -10,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
10 1 file changed, 1 insertion(+) 11 1 file changed, 1 insertion(+)
11 12
12diff --git a/llvm/cmake/modules/CrossCompile.cmake b/llvm/cmake/modules/CrossCompile.cmake 13diff --git a/llvm/cmake/modules/CrossCompile.cmake b/llvm/cmake/modules/CrossCompile.cmake
13index 8a6e880c4e2..259211df18e 100644 14index 01cd3712484..f50be9d967d 100644
14--- a/llvm/cmake/modules/CrossCompile.cmake 15--- a/llvm/cmake/modules/CrossCompile.cmake
15+++ b/llvm/cmake/modules/CrossCompile.cmake 16+++ b/llvm/cmake/modules/CrossCompile.cmake
16@@ -79,6 +79,7 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype) 17@@ -79,6 +79,7 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype)
@@ -21,3 +22,6 @@ index 8a6e880c4e2..259211df18e 100644
21 ${build_type_flags} ${linker_flag} ${external_clang_dir} 22 ${build_type_flags} ${linker_flag} ${external_clang_dir}
22 ${ARGN} 23 ${ARGN}
23 WORKING_DIRECTORY ${${project_name}_${target_name}_BUILD} 24 WORKING_DIRECTORY ${${project_name}_${target_name}_BUILD}
25--
262.27.0
27
diff --git a/recipes-devtools/clang/clang/0017-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch b/recipes-devtools/clang/clang/0017-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch
deleted file mode 100644
index f5bc773..0000000
--- a/recipes-devtools/clang/clang/0017-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From cfe4473e8447cd2c73a2f42c9c235ce1dfd08bec Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 11 Dec 2019 10:23:15 -0800
4Subject: [PATCH] libclang: Use CMAKE_DL_LIBS for deducing libdl
5
6This helps in getting right settings for libdl irrespective of platform
7it also fixes build with -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON
8
9Fixes
10
11tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o: In function clang::CIndexer::getClangResourcesPath[abi:cxx11]()': 2019-12-06T06:04:39.2987601Z | CIndexer.cpp:(.text._ZN5clang8CIndexer21getClangResourcesPathB5cxx11Ev+0x8b): undefined reference to dladdr'
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 clang/tools/libclang/CMakeLists.txt | 5 ++---
16 1 file changed, 2 insertions(+), 3 deletions(-)
17
18diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt
19index bd0c945a5e1..723fa95f14b 100644
20--- a/clang/tools/libclang/CMakeLists.txt
21+++ b/clang/tools/libclang/CMakeLists.txt
22@@ -60,9 +60,8 @@ if (TARGET clangTidyPlugin)
23 endif()
24 endif ()
25
26-find_library(DL_LIBRARY_PATH dl)
27-if (DL_LIBRARY_PATH)
28- list(APPEND LIBS dl)
29+if (HAVE_LIBDL)
30+ list(APPEND LIBS ${CMAKE_DL_LIBS})
31 endif()
32
33 option(LIBCLANG_BUILD_STATIC
diff --git a/recipes-devtools/clang/clang/0019-Check-for-atomic-double-intrinsics.patch b/recipes-devtools/clang/clang/0018-Check-for-atomic-double-intrinsics.patch
index 0885648..e6df535 100644
--- a/recipes-devtools/clang/clang/0019-Check-for-atomic-double-intrinsics.patch
+++ b/recipes-devtools/clang/clang/0018-Check-for-atomic-double-intrinsics.patch
@@ -1,7 +1,7 @@
1From dd6a749dee10f537fc7cb558ace319041a63e5f3 Mon Sep 17 00:00:00 2001 1From 9f3168a04fcf9b44c7850c5977e8f1dfa2c4a2ff Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 18 Nov 2019 17:00:29 -0800 3Date: Mon, 18 Nov 2019 17:00:29 -0800
4Subject: [PATCH] Check for atomic<double> intrinsics 4Subject: [PATCH 18/24] Check for atomic<double> intrinsics
5 5
6On some architectures e.g. x86/32bit gcc decides to inline calls to 6On some architectures e.g. x86/32bit gcc decides to inline calls to
7double atomic variables but clang does not and defers it to libatomic 7double atomic variables but clang does not and defers it to libatomic
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 2 insertions(+), 1 deletion(-) 15 1 file changed, 2 insertions(+), 1 deletion(-)
16 16
17diff --git a/llvm/cmake/modules/CheckAtomic.cmake b/llvm/cmake/modules/CheckAtomic.cmake 17diff --git a/llvm/cmake/modules/CheckAtomic.cmake b/llvm/cmake/modules/CheckAtomic.cmake
18index 29f3bdd57f0..6460842cf63 100644 18index d0b75f3bcc9..8ebe83b0d31 100644
19--- a/llvm/cmake/modules/CheckAtomic.cmake 19--- a/llvm/cmake/modules/CheckAtomic.cmake
20+++ b/llvm/cmake/modules/CheckAtomic.cmake 20+++ b/llvm/cmake/modules/CheckAtomic.cmake
21@@ -26,9 +26,10 @@ function(check_working_cxx_atomics64 varname) 21@@ -30,9 +30,10 @@ function(check_working_cxx_atomics64 varname)
22 #include <atomic> 22 #include <atomic>
23 #include <cstdint> 23 #include <cstdint>
24 std::atomic<uint64_t> x (0); 24 std::atomic<uint64_t> x (0);
@@ -30,3 +30,6 @@ index 29f3bdd57f0..6460842cf63 100644
30 } 30 }
31 " ${varname}) 31 " ${varname})
32 set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) 32 set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
33--
342.27.0
35
diff --git a/recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch b/recipes-devtools/clang/clang/0019-clang-Enable-SSP-and-PIE-by-default.patch
index 39d500c..5e92940 100644
--- a/recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch
+++ b/recipes-devtools/clang/clang/0019-clang-Enable-SSP-and-PIE-by-default.patch
@@ -1,7 +1,7 @@
1From b826518219333760c4632062dc586bbe17a055e6 Mon Sep 17 00:00:00 2001 1From c93bfc2e7cf6e4abb077e3b18d8adf0985e707f6 Mon Sep 17 00:00:00 2001
2From: Evangelos Foutras <evangelos@foutrelis.com> 2From: Evangelos Foutras <evangelos@foutrelis.com>
3Date: Thu, 26 Dec 2019 15:46:19 -0800 3Date: Thu, 26 Dec 2019 15:46:19 -0800
4Subject: [PATCH] clang: Enable SSP and PIE by default 4Subject: [PATCH 19/24] clang: Enable SSP and PIE by default
5 5
6This is a minimal set of changes needed to make clang use SSP and PIE by 6This is a minimal set of changes needed to make clang use SSP and PIE by
7default on Arch Linux. Tests that were easy to adjust have been changed 7default on Arch Linux. Tests that were easy to adjust have been changed
@@ -37,10 +37,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
37 13 files changed, 43 insertions(+), 30 deletions(-) 37 13 files changed, 43 insertions(+), 30 deletions(-)
38 38
39diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 39diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
40index 0a4644dab9f..fb579e7ad60 100644 40index add122d5cc8..9128d4e0fa0 100644
41--- a/clang/lib/Driver/ToolChains/Linux.cpp 41--- a/clang/lib/Driver/ToolChains/Linux.cpp
42+++ b/clang/lib/Driver/ToolChains/Linux.cpp 42+++ b/clang/lib/Driver/ToolChains/Linux.cpp
43@@ -941,8 +941,18 @@ void Linux::AddIAMCUIncludeArgs(const ArgList &DriverArgs, 43@@ -843,8 +843,18 @@ void Linux::AddIAMCUIncludeArgs(const ArgList &DriverArgs,
44 } 44 }
45 45
46 bool Linux::isPIEDefault() const { 46 bool Linux::isPIEDefault() const {
@@ -62,10 +62,10 @@ index 0a4644dab9f..fb579e7ad60 100644
62 62
63 bool Linux::isNoExecStackDefault() const { 63 bool Linux::isNoExecStackDefault() const {
64diff --git a/clang/lib/Driver/ToolChains/Linux.h b/clang/lib/Driver/ToolChains/Linux.h 64diff --git a/clang/lib/Driver/ToolChains/Linux.h b/clang/lib/Driver/ToolChains/Linux.h
65index f5518eac218..2d4973cf40c 100644 65index 6b16b0e6499..d0024110aef 100644
66--- a/clang/lib/Driver/ToolChains/Linux.h 66--- a/clang/lib/Driver/ToolChains/Linux.h
67+++ b/clang/lib/Driver/ToolChains/Linux.h 67+++ b/clang/lib/Driver/ToolChains/Linux.h
68@@ -37,6 +37,7 @@ public: 68@@ -39,6 +39,7 @@ public:
69 bool isPIEDefault() const override; 69 bool isPIEDefault() const override;
70 bool isNoExecStackDefault() const override; 70 bool isNoExecStackDefault() const override;
71 bool IsMathErrnoDefault() const override; 71 bool IsMathErrnoDefault() const override;
@@ -135,10 +135,10 @@ index 0371bc91c4a..ea89f525121 100644
135 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 135 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
136 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 136 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
137diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c 137diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c
138index f02f94d8c5a..358917588c7 100644 138index 7340bfb35e4..681bb90b50e 100644
139--- a/clang/test/Driver/fsanitize.c 139--- a/clang/test/Driver/fsanitize.c
140+++ b/clang/test/Driver/fsanitize.c 140+++ b/clang/test/Driver/fsanitize.c
141@@ -328,15 +328,15 @@ 141@@ -329,15 +329,15 @@
142 // RUN: %clang -target x86_64-linux-gnu -fsanitize=vptr -fno-sanitize=vptr -fsanitize=undefined,address %s -### 2>&1 142 // RUN: %clang -target x86_64-linux-gnu -fsanitize=vptr -fno-sanitize=vptr -fsanitize=undefined,address %s -### 2>&1
143 // OK 143 // OK
144 144
@@ -158,7 +158,7 @@ index f02f94d8c5a..358917588c7 100644
158 158
159 // CHECK-NO-PIE-NOT: "-pie" 159 // CHECK-NO-PIE-NOT: "-pie"
160 // CHECK-NO-PIE: "-mrelocation-model" "static" 160 // CHECK-NO-PIE: "-mrelocation-model" "static"
161@@ -661,12 +661,12 @@ 161@@ -662,12 +662,12 @@
162 // RUN: %clang -fno-sanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NOSP 162 // RUN: %clang -fno-sanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NOSP
163 // NOSP-NOT: "-fsanitize=safe-stack" 163 // NOSP-NOT: "-fsanitize=safe-stack"
164 164
@@ -187,10 +187,10 @@ index 6c872f4255c..f5006d1dd9a 100644
187 // CHECK: "-L[[TOOLCHAIN]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5" 187 // CHECK: "-L[[TOOLCHAIN]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
188 // CHECK: "-L[[TOOLCHAIN]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.." 188 // CHECK: "-L[[TOOLCHAIN]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
189diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c 189diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c
190index 44bff6f703a..6575d032f5d 100644 190index cc11f9fcba9..1fe8b5db587 100644
191--- a/clang/test/Driver/hexagon-toolchain-elf.c 191--- a/clang/test/Driver/hexagon-toolchain-elf.c
192+++ b/clang/test/Driver/hexagon-toolchain-elf.c 192+++ b/clang/test/Driver/hexagon-toolchain-elf.c
193@@ -470,7 +470,7 @@ 193@@ -487,7 +487,7 @@
194 // RUN: %s 2>&1 \ 194 // RUN: %s 2>&1 \
195 // RUN: | FileCheck -check-prefix=CHECK042 %s 195 // RUN: | FileCheck -check-prefix=CHECK042 %s
196 // CHECK042: "-cc1" 196 // CHECK042: "-cc1"
@@ -222,7 +222,7 @@ index 77ac05f3094..cb474f32898 100644
222 // CHECK-SPARCV9PIC: as 222 // CHECK-SPARCV9PIC: as
223 // CHECK-SPARCV9PIC: -64 223 // CHECK-SPARCV9PIC: -64
224diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c 224diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c
225index 51227550b52..d01d6627131 100644 225index ec539522c25..caf96020a15 100644
226--- a/clang/test/Driver/linux-ld.c 226--- a/clang/test/Driver/linux-ld.c
227+++ b/clang/test/Driver/linux-ld.c 227+++ b/clang/test/Driver/linux-ld.c
228@@ -1,3 +1,5 @@ 228@@ -1,3 +1,5 @@
@@ -250,10 +250,10 @@ index acc4981a2ee..0d465516762 100644
250 // CHECK-ELFv2-BE: "-mrelocation-model" "static" 250 // CHECK-ELFv2-BE: "-mrelocation-model" "static"
251 // CHECK-ELFv2-BE: "-target-abi" "elfv2" 251 // CHECK-ELFv2-BE: "-target-abi" "elfv2"
252diff --git a/clang/test/Driver/riscv32-toolchain.c b/clang/test/Driver/riscv32-toolchain.c 252diff --git a/clang/test/Driver/riscv32-toolchain.c b/clang/test/Driver/riscv32-toolchain.c
253index 2ff3a585bda..f923b728c0f 100644 253index b83c9aafcbf..15b6f6496b2 100644
254--- a/clang/test/Driver/riscv32-toolchain.c 254--- a/clang/test/Driver/riscv32-toolchain.c
255+++ b/clang/test/Driver/riscv32-toolchain.c 255+++ b/clang/test/Driver/riscv32-toolchain.c
256@@ -76,7 +76,7 @@ 256@@ -81,7 +81,7 @@
257 // C-RV32-LINUX-MULTI-ILP32: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot" 257 // C-RV32-LINUX-MULTI-ILP32: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
258 // C-RV32-LINUX-MULTI-ILP32: "-m" "elf32lriscv" 258 // C-RV32-LINUX-MULTI-ILP32: "-m" "elf32lriscv"
259 // C-RV32-LINUX-MULTI-ILP32: "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32.so.1" 259 // C-RV32-LINUX-MULTI-ILP32: "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32.so.1"
@@ -262,7 +262,7 @@ index 2ff3a585bda..f923b728c0f 100644
262 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32" 262 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32"
263 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32" 263 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32"
264 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32" 264 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32"
265@@ -91,7 +91,7 @@ 265@@ -96,7 +96,7 @@
266 // C-RV32-LINUX-MULTI-ILP32D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot" 266 // C-RV32-LINUX-MULTI-ILP32D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
267 // C-RV32-LINUX-MULTI-ILP32D: "-m" "elf32lriscv" 267 // C-RV32-LINUX-MULTI-ILP32D: "-m" "elf32lriscv"
268 // C-RV32-LINUX-MULTI-ILP32D: "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32d.so.1" 268 // C-RV32-LINUX-MULTI-ILP32D: "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32d.so.1"
@@ -272,10 +272,10 @@ index 2ff3a585bda..f923b728c0f 100644
272 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32d" 272 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32d"
273 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32d" 273 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32d"
274diff --git a/clang/test/Driver/riscv64-toolchain.c b/clang/test/Driver/riscv64-toolchain.c 274diff --git a/clang/test/Driver/riscv64-toolchain.c b/clang/test/Driver/riscv64-toolchain.c
275index 42cac51de59..42a05e02fcc 100644 275index 5df069eb9fd..2617551ec35 100644
276--- a/clang/test/Driver/riscv64-toolchain.c 276--- a/clang/test/Driver/riscv64-toolchain.c
277+++ b/clang/test/Driver/riscv64-toolchain.c 277+++ b/clang/test/Driver/riscv64-toolchain.c
278@@ -76,7 +76,7 @@ 278@@ -81,7 +81,7 @@
279 // C-RV64-LINUX-MULTI-LP64: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot" 279 // C-RV64-LINUX-MULTI-LP64: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
280 // C-RV64-LINUX-MULTI-LP64: "-m" "elf64lriscv" 280 // C-RV64-LINUX-MULTI-LP64: "-m" "elf64lriscv"
281 // C-RV64-LINUX-MULTI-LP64: "-dynamic-linker" "/lib/ld-linux-riscv64-lp64.so.1" 281 // C-RV64-LINUX-MULTI-LP64: "-dynamic-linker" "/lib/ld-linux-riscv64-lp64.so.1"
@@ -284,7 +284,7 @@ index 42cac51de59..42a05e02fcc 100644
284 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib64/lp64" 284 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib64/lp64"
285 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib64/lp64" 285 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib64/lp64"
286 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib64/lp64" 286 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib64/lp64"
287@@ -91,7 +91,7 @@ 287@@ -96,7 +96,7 @@
288 // C-RV64-LINUX-MULTI-LP64D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot" 288 // C-RV64-LINUX-MULTI-LP64D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
289 // C-RV64-LINUX-MULTI-LP64D: "-m" "elf64lriscv" 289 // C-RV64-LINUX-MULTI-LP64D: "-m" "elf64lriscv"
290 // C-RV64-LINUX-MULTI-LP64D: "-dynamic-linker" "/lib/ld-linux-riscv64-lp64d.so.1" 290 // C-RV64-LINUX-MULTI-LP64D: "-dynamic-linker" "/lib/ld-linux-riscv64-lp64d.so.1"
@@ -311,3 +311,6 @@ index a3e40b50eed..dfffe0d6cf8 100644
311 // SSP-BUF: "-stack-protector-buffer-size" "16" 311 // SSP-BUF: "-stack-protector-buffer-size" "16"
312 312
313 // RUN: %clang -target i386-pc-openbsd -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD 313 // RUN: %clang -target i386-pc-openbsd -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD
314--
3152.27.0
316
diff --git a/recipes-devtools/clang/clang/0021-libcxx-Add-compiler-runtime-library-to-link-step-for.patch b/recipes-devtools/clang/clang/0020-libcxx-Add-compiler-runtime-library-to-link-step-for.patch
index ab406d0..afa5325 100644
--- a/recipes-devtools/clang/clang/0021-libcxx-Add-compiler-runtime-library-to-link-step-for.patch
+++ b/recipes-devtools/clang/clang/0020-libcxx-Add-compiler-runtime-library-to-link-step-for.patch
@@ -1,7 +1,8 @@
1From 6330360e13936fca5625e39ceed7441b45c3efd3 Mon Sep 17 00:00:00 2001 1From 70646ae410a97feb236b84bbb46fa8ff8e7da79a Mon Sep 17 00:00:00 2001
2From: Jeremy Puhlman <jpuhlman@mvista.com> 2From: Jeremy Puhlman <jpuhlman@mvista.com>
3Date: Thu, 16 Jan 2020 21:16:10 +0000 3Date: Thu, 16 Jan 2020 21:16:10 +0000
4Subject: [PATCH] libcxx: Add compiler runtime library to link step for libcxx 4Subject: [PATCH 20/24] libcxx: Add compiler runtime library to link step for
5 libcxx
5 6
6This corrects "undefined reference to __divti3" 7This corrects "undefined reference to __divti3"
7 8
@@ -14,24 +15,27 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 2 insertions(+), 2 deletions(-) 15 1 file changed, 2 insertions(+), 2 deletions(-)
15 16
16diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt 17diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
17index 120505fe18d..b337fa2e403 100644 18index 2001c09761d..59ba5f7490c 100644
18--- a/libcxx/src/CMakeLists.txt 19--- a/libcxx/src/CMakeLists.txt
19+++ b/libcxx/src/CMakeLists.txt 20+++ b/libcxx/src/CMakeLists.txt
20@@ -160,7 +160,7 @@ if (LIBCXX_ENABLE_SHARED) 21@@ -164,7 +164,7 @@ if (LIBCXX_ENABLE_SHARED)
21 if(COMMAND llvm_setup_rpath)
22 llvm_setup_rpath(cxx_shared) 22 llvm_setup_rpath(cxx_shared)
23 endif() 23 endif()
24- target_link_libraries(cxx_shared PRIVATE ${LIBCXX_LIBRARIES}) 24 target_link_libraries(cxx_shared PUBLIC cxx-headers
25+ target_link_libraries(cxx_shared PRIVATE ${LIBCXX_LIBRARIES} "$$($$CC --print-libgcc-file-name)") 25- PRIVATE ${LIBCXX_LIBRARIES})
26+ PRIVATE ${LIBCXX_LIBRARIES} "$$($$CC --print-libgcc-file-name)")
26 set_target_properties(cxx_shared 27 set_target_properties(cxx_shared
27 PROPERTIES 28 PROPERTIES
28 COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}" 29 COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}"
29@@ -238,7 +238,7 @@ endif() 30@@ -246,7 +246,7 @@ endif()
30 # Build the static library.
31 if (LIBCXX_ENABLE_STATIC) 31 if (LIBCXX_ENABLE_STATIC)
32 add_library(cxx_static STATIC ${exclude_from_all} ${LIBCXX_SOURCES} ${LIBCXX_HEADERS}) 32 add_library(cxx_static STATIC ${exclude_from_all} ${LIBCXX_SOURCES} ${LIBCXX_HEADERS})
33- target_link_libraries(cxx_static PRIVATE ${LIBCXX_LIBRARIES}) 33 target_link_libraries(cxx_static PUBLIC cxx-headers
34+ target_link_libraries(cxx_static PRIVATE ${LIBCXX_LIBRARIES} "$$($$CC --print-libgcc-file-name)") 34- PRIVATE ${LIBCXX_LIBRARIES})
35+ PRIVATE ${LIBCXX_LIBRARIES} "$$($$CC --print-libgcc-file-name)")
35 set(CMAKE_STATIC_LIBRARY_PREFIX "lib") 36 set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
36 set_target_properties(cxx_static 37 set_target_properties(cxx_static
37 PROPERTIES 38 PROPERTIES
39--
402.27.0
41
diff --git a/recipes-devtools/clang/clang/0022-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch b/recipes-devtools/clang/clang/0021-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch
index 5413693..09bc9d8 100644
--- a/recipes-devtools/clang/clang/0022-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch
+++ b/recipes-devtools/clang/clang/0021-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch
@@ -1,7 +1,7 @@
1From 9f5949b795a92f85c98277fd8d72954fb52df164 Mon Sep 17 00:00:00 2001 1From f48b53ec65d4138139339f4d1cdc12c4e1a1c042 Mon Sep 17 00:00:00 2001
2From: Ovidiu Panait <ovidiu.panait@windriver.com> 2From: Ovidiu Panait <ovidiu.panait@windriver.com>
3Date: Fri, 31 Jan 2020 10:56:11 +0200 3Date: Fri, 31 Jan 2020 10:56:11 +0200
4Subject: [PATCH] clang,llvm: cmake: Fix configure for packages using 4Subject: [PATCH 21/24] clang,llvm: cmake: Fix configure for packages using
5 find_package() 5 find_package()
6 6
7Currently, when a package (i.e. bcc [https://github.com/iovisor/bcc.git]) 7Currently, when a package (i.e. bcc [https://github.com/iovisor/bcc.git])
@@ -32,10 +32,10 @@ Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
32 3 files changed, 33 deletions(-) 32 3 files changed, 33 deletions(-)
33 33
34diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake 34diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake
35index 577cc11ab01..5c859d86069 100644 35index 704278a0e93..6ea99c90772 100644
36--- a/clang/cmake/modules/AddClang.cmake 36--- a/clang/cmake/modules/AddClang.cmake
37+++ b/clang/cmake/modules/AddClang.cmake 37+++ b/clang/cmake/modules/AddClang.cmake
38@@ -151,15 +151,8 @@ macro(add_clang_tool name) 38@@ -161,15 +161,8 @@ macro(add_clang_tool name)
39 add_dependencies(${name} clang-resource-headers) 39 add_dependencies(${name} clang-resource-headers)
40 40
41 if (CLANG_BUILD_TOOLS) 41 if (CLANG_BUILD_TOOLS)
@@ -51,7 +51,7 @@ index 577cc11ab01..5c859d86069 100644
51 RUNTIME DESTINATION bin 51 RUNTIME DESTINATION bin
52 COMPONENT ${name}) 52 COMPONENT ${name})
53 53
54@@ -168,7 +161,6 @@ macro(add_clang_tool name) 54@@ -178,7 +171,6 @@ macro(add_clang_tool name)
55 DEPENDS ${name} 55 DEPENDS ${name}
56 COMPONENT ${name}) 56 COMPONENT ${name})
57 endif() 57 endif()
@@ -60,10 +60,10 @@ index 577cc11ab01..5c859d86069 100644
60 endmacro() 60 endmacro()
61 61
62diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake 62diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
63index fd69786544a..70580ccb129 100644 63index 333167bfb6b..f00fd98bdb2 100644
64--- a/llvm/cmake/modules/AddLLVM.cmake 64--- a/llvm/cmake/modules/AddLLVM.cmake
65+++ b/llvm/cmake/modules/AddLLVM.cmake 65+++ b/llvm/cmake/modules/AddLLVM.cmake
66@@ -1045,15 +1045,8 @@ macro(add_llvm_tool name) 66@@ -1169,15 +1169,8 @@ macro(add_llvm_tool name)
67 67
68 if ( ${name} IN_LIST LLVM_TOOLCHAIN_TOOLS OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) 68 if ( ${name} IN_LIST LLVM_TOOLCHAIN_TOOLS OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
69 if( LLVM_BUILD_TOOLS ) 69 if( LLVM_BUILD_TOOLS )
@@ -79,7 +79,7 @@ index fd69786544a..70580ccb129 100644
79 RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR} 79 RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR}
80 COMPONENT ${name}) 80 COMPONENT ${name})
81 81
82@@ -1064,9 +1057,6 @@ macro(add_llvm_tool name) 82@@ -1188,9 +1181,6 @@ macro(add_llvm_tool name)
83 endif() 83 endif()
84 endif() 84 endif()
85 endif() 85 endif()
@@ -89,7 +89,7 @@ index fd69786544a..70580ccb129 100644
89 set_target_properties(${name} PROPERTIES FOLDER "Tools") 89 set_target_properties(${name} PROPERTIES FOLDER "Tools")
90 endmacro(add_llvm_tool name) 90 endmacro(add_llvm_tool name)
91 91
92@@ -1104,15 +1094,8 @@ macro(add_llvm_utility name) 92@@ -1228,15 +1218,8 @@ macro(add_llvm_utility name)
93 set_target_properties(${name} PROPERTIES FOLDER "Utils") 93 set_target_properties(${name} PROPERTIES FOLDER "Utils")
94 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) 94 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
95 if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) 95 if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
@@ -105,7 +105,7 @@ index fd69786544a..70580ccb129 100644
105 RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR} 105 RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR}
106 COMPONENT ${name}) 106 COMPONENT ${name})
107 107
108@@ -1121,7 +1104,6 @@ macro(add_llvm_utility name) 108@@ -1245,7 +1228,6 @@ macro(add_llvm_utility name)
109 DEPENDS ${name} 109 DEPENDS ${name}
110 COMPONENT ${name}) 110 COMPONENT ${name})
111 endif() 111 endif()
@@ -114,10 +114,10 @@ index fd69786544a..70580ccb129 100644
114 set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY ${name}) 114 set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY ${name})
115 endif() 115 endif()
116diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake 116diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake
117index 9d2fcd9a793..acdb898149d 100644 117index 73c1e96d3d9..7b1c33961c1 100644
118--- a/llvm/cmake/modules/TableGen.cmake 118--- a/llvm/cmake/modules/TableGen.cmake
119+++ b/llvm/cmake/modules/TableGen.cmake 119+++ b/llvm/cmake/modules/TableGen.cmake
120@@ -161,14 +161,8 @@ macro(add_tablegen target project) 120@@ -183,14 +183,8 @@ macro(add_tablegen target project)
121 endif() 121 endif()
122 122
123 if ((${project} STREQUAL LLVM OR ${project} STREQUAL MLIR) AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS) 123 if ((${project} STREQUAL LLVM OR ${project} STREQUAL MLIR) AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS)
@@ -132,9 +132,12 @@ index 9d2fcd9a793..acdb898149d 100644
132 COMPONENT ${target} 132 COMPONENT ${target}
133 RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR}) 133 RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR})
134 if(NOT LLVM_ENABLE_IDE) 134 if(NOT LLVM_ENABLE_IDE)
135@@ -177,5 +171,4 @@ macro(add_tablegen target project) 135@@ -199,5 +193,4 @@ macro(add_tablegen target project)
136 COMPONENT ${target}) 136 COMPONENT ${target})
137 endif() 137 endif()
138 endif() 138 endif()
139- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target}) 139- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target})
140 endmacro() 140 endmacro()
141--
1422.27.0
143
diff --git a/recipes-devtools/clang/clang/0023-clang-Fix-resource-dir-location-for-cross-toolchains.patch b/recipes-devtools/clang/clang/0022-clang-Fix-resource-dir-location-for-cross-toolchains.patch
index decab68..85f1d8c 100644
--- a/recipes-devtools/clang/clang/0023-clang-Fix-resource-dir-location-for-cross-toolchains.patch
+++ b/recipes-devtools/clang/clang/0022-clang-Fix-resource-dir-location-for-cross-toolchains.patch
@@ -1,7 +1,7 @@
1From ed3b5d8bb197f01556b42dfc2281693475fd830e Mon Sep 17 00:00:00 2001 1From 5fb5780cdf9fe0f26ac1a076d0eaa82de61b5f8b Mon Sep 17 00:00:00 2001
2From: Jim Broadus <jbroadus@xevo.com> 2From: Jim Broadus <jbroadus@xevo.com>
3Date: Thu, 26 Mar 2020 16:05:53 -0700 3Date: Thu, 26 Mar 2020 16:05:53 -0700
4Subject: [PATCH] clang: Fix resource dir location for cross toolchains 4Subject: [PATCH 22/24] clang: Fix resource dir location for cross toolchains
5 5
6When clang looks for the resources directory, it does so based on the binary 6When clang looks for the resources directory, it does so based on the binary
7location and assumes that the containing directory is a sibling to lib. The 7location and assumes that the containing directory is a sibling to lib. The
@@ -13,29 +13,25 @@ As a fix for this, check the parent directory name. If that is "bin", then
13use that directory's parent. 13use that directory's parent.
14 14
15Signed-off-by: Jim Broadus <jbroadus@xevo.com> 15Signed-off-by: Jim Broadus <jbroadus@xevo.com>
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
16--- 17---
17 clang/lib/Driver/Driver.cpp | 8 +++++++- 18 clang/lib/Driver/Driver.cpp | 8 +++++++-
18 1 file changed, 7 insertions(+), 1 deletion(-) 19 1 file changed, 7 insertions(+), 1 deletion(-)
19 20
20diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
21index fb8335a3695..819887944b5 100644
22--- a/clang/lib/Driver/Driver.cpp 21--- a/clang/lib/Driver/Driver.cpp
23+++ b/clang/lib/Driver/Driver.cpp 22+++ b/clang/lib/Driver/Driver.cpp
24@@ -110,7 +110,13 @@ std::string Driver::GetResourcesPath(StringRef BinaryPath, 23@@ -112,7 +112,13 @@ std::string Driver::GetResourcesPath(Str
25 // With a static-library build of libclang, LibClangPath will contain the 24 // With a static-library build of libclang, LibClangPath will contain the
26 // path of the embedding binary, which for LLVM binaries will be in bin/. 25 // path of the embedding binary, which for LLVM binaries will be in bin/.
27 // ../lib gets us to lib/ in both cases. 26 // ../lib gets us to lib/ in both cases.
28- P = llvm::sys::path::parent_path(Dir); 27- P = llvm::sys::path::parent_path(Dir);
29+ Dir = llvm::sys::path::parent_path(Dir); 28+ Dir = std::string(llvm::sys::path::parent_path(Dir));
30+ 29+
31+ // OE cross toolchains are installed, by default, in a subdir of bin. 30+ // OE cross toolchains are installed, by default, in a subdir of bin.
32+ if (llvm::sys::path::filename(Dir) == "bin") { 31+ if (llvm::sys::path::filename(Dir) == "bin") {
33+ Dir = llvm::sys::path::parent_path(Dir); 32+ Dir = std::string(llvm::sys::path::parent_path(Dir));
34+ } 33+ }
35+ P = Dir; 34+ P = Dir;
36 llvm::sys::path::append(P, Twine("lib") + CLANG_LIBDIR_SUFFIX, "clang", 35 llvm::sys::path::append(P, Twine("lib") + CLANG_LIBDIR_SUFFIX, "clang",
37 CLANG_VERSION_STRING); 36 CLANG_VERSION_STRING);
38 } 37 }
39--
402.24.1
41
diff --git a/recipes-devtools/clang/clang/0024-fix-path-to-libffi.patch b/recipes-devtools/clang/clang/0023-fix-path-to-libffi.patch
index 2890228..40c06c1 100644
--- a/recipes-devtools/clang/clang/0024-fix-path-to-libffi.patch
+++ b/recipes-devtools/clang/clang/0023-fix-path-to-libffi.patch
@@ -1,19 +1,20 @@
1From 52b4e74809eba796663f0f65194ab4f3eafe2cb1 Mon Sep 17 00:00:00 2001 1From 358d0e3732ffa2c7204d20a302c065b71806e3b8 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com> 2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Fri, 3 Apr 2020 15:10:37 +0800 3Date: Fri, 3 Apr 2020 15:10:37 +0800
4Subject: [PATCH] fix path to libffi 4Subject: [PATCH 23/24] fix path to libffi
5 5
6FFI_LIBRARY_PATH is the full path to libffi so when building something that links to 6FFI_LIBRARY_PATH is the full path to libffi so when building something that links to
7libLLVMInterpreter, we were looking for libffi in clang's recipe-sysroot instead of 7libLLVMInterpreter, we were looking for libffi in clang's recipe-sysroot instead of
8the recipe's sysroot. 8the recipe's sysroot.
9 9
10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> 10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
11--- 12---
12 llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt | 2 +- 13 llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-) 14 1 file changed, 1 insertion(+), 1 deletion(-)
14 15
15diff --git a/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt b/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt 16diff --git a/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt b/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt
16index b8adea5..7d8434c 100644 17index b8adea5b7a9..7d8434c2d0e 100644
17--- a/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt 18--- a/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt
18+++ b/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt 19+++ b/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt
19@@ -16,5 +16,5 @@ add_llvm_component_library(LLVMInterpreter 20@@ -16,5 +16,5 @@ add_llvm_component_library(LLVMInterpreter
@@ -24,5 +25,5 @@ index b8adea5..7d8434c 100644
24+ target_link_libraries( LLVMInterpreter PRIVATE ffi ) 25+ target_link_libraries( LLVMInterpreter PRIVATE ffi )
25 endif() 26 endif()
26-- 27--
272.7.4 282.27.0
28 29
diff --git a/recipes-devtools/clang/clang/0025-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch b/recipes-devtools/clang/clang/0024-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch
index 43161c7..15dcd13 100644
--- a/recipes-devtools/clang/clang/0025-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch
+++ b/recipes-devtools/clang/clang/0024-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch
@@ -1,8 +1,8 @@
1From fcafd24f9062eeecc9c87ac2fe9bce9accbe7534 Mon Sep 17 00:00:00 2001 1From 17e1e38501cb4008c53727d88ef87d2c89182008 Mon Sep 17 00:00:00 2001
2From: Oleksandr Ocheretnyi <oocheret@cisco.com> 2From: Oleksandr Ocheretnyi <oocheret@cisco.com>
3Date: Wed, 15 Apr 2020 00:08:39 +0300 3Date: Wed, 15 Apr 2020 00:08:39 +0300
4Subject: [PATCH] clang: driver: Add dyld-prefix when checking sysroot for ldso 4Subject: [PATCH 24/24] clang: driver: Add dyld-prefix when checking sysroot
5 path 5 for ldso path
6 6
7 * the dyld-prefix shall be taken into account when the default 7 * the dyld-prefix shall be taken into account when the default
8 path for the dynamic linker has to be checked. 8 path for the dynamic linker has to be checked.
@@ -12,15 +12,16 @@ Subject: [PATCH] clang: driver: Add dyld-prefix when checking sysroot for ldso
12 the usrmerge scenario. 12 the usrmerge scenario.
13 13
14Signed-off-by: Oleksandr Ocheretnyi <oocheret@cisco.com> 14Signed-off-by: Oleksandr Ocheretnyi <oocheret@cisco.com>
15Signed-off-by: Khem Raj <raj.khem@gmail.com>
15--- 16---
16 clang/lib/Driver/ToolChains/Linux.cpp | 16 ++++++++-------- 17 clang/lib/Driver/ToolChains/Linux.cpp | 16 ++++++++--------
17 1 file changed, 8 insertions(+), 8 deletions(-) 18 1 file changed, 8 insertions(+), 8 deletions(-)
18 19
19diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 20diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
20index fb579e7ad60..4ed5938cc59 100644 21index 9128d4e0fa0..7f7d752a9a1 100644
21--- a/clang/lib/Driver/ToolChains/Linux.cpp 22--- a/clang/lib/Driver/ToolChains/Linux.cpp
22+++ b/clang/lib/Driver/ToolChains/Linux.cpp 23+++ b/clang/lib/Driver/ToolChains/Linux.cpp
23@@ -604,8 +604,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 24@@ -507,8 +507,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
24 LibDir = "lib64"; 25 LibDir = "lib64";
25 Loader = 26 Loader =
26 (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1"; 27 (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
@@ -31,7 +32,7 @@ index fb579e7ad60..4ed5938cc59 100644
31 LibDir = "lib"; 32 LibDir = "lib";
32 } 33 }
33 break; 34 break;
34@@ -613,8 +613,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 35@@ -516,8 +516,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
35 LibDir = "lib64"; 36 LibDir = "lib64";
36 Loader = 37 Loader =
37 (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; 38 (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
@@ -42,7 +43,7 @@ index fb579e7ad60..4ed5938cc59 100644
42 LibDir = "lib"; 43 LibDir = "lib";
43 } 44 }
44 break; 45 break;
45@@ -638,8 +638,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 46@@ -541,8 +541,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
46 case llvm::Triple::sparcv9: 47 case llvm::Triple::sparcv9:
47 LibDir = "lib64"; 48 LibDir = "lib64";
48 Loader = "ld-linux.so.2"; 49 Loader = "ld-linux.so.2";
@@ -53,7 +54,7 @@ index fb579e7ad60..4ed5938cc59 100644
53 LibDir = "lib"; 54 LibDir = "lib";
54 } 55 }
55 break; 56 break;
56@@ -656,8 +656,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 57@@ -559,8 +559,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
57 58
58 LibDir = X32 ? "libx32" : "lib64"; 59 LibDir = X32 ? "libx32" : "lib64";
59 Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2"; 60 Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
@@ -65,5 +66,5 @@ index fb579e7ad60..4ed5938cc59 100644
65 } 66 }
66 break; 67 break;
67-- 68--
682.17.1 692.27.0
69 70
diff --git a/recipes-devtools/clang/common.inc b/recipes-devtools/clang/common.inc
index 6b805a6..2fd2a18 100644
--- a/recipes-devtools/clang/common.inc
+++ b/recipes-devtools/clang/common.inc
@@ -24,15 +24,15 @@ SRC_URI = "\
24 file://0014-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch \ 24 file://0014-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch \
25 file://0015-clang-scan-view-needs-python-2.x.patch \ 25 file://0015-clang-scan-view-needs-python-2.x.patch \
26 file://0016-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch \ 26 file://0016-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch \
27 file://0017-libclang-Use-CMAKE_DL_LIBS-for-deducing-libdl.patch \ 27 file://0017-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch \
28 file://0018-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch \ 28 file://0018-Check-for-atomic-double-intrinsics.patch \
29 file://0019-Check-for-atomic-double-intrinsics.patch \ 29 file://0019-clang-Enable-SSP-and-PIE-by-default.patch \
30 file://0020-clang-Enable-SSP-and-PIE-by-default.patch \ 30 file://0020-libcxx-Add-compiler-runtime-library-to-link-step-for.patch \
31 file://0021-libcxx-Add-compiler-runtime-library-to-link-step-for.patch \ 31 file://0021-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch \
32 file://0022-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch \ 32 file://0022-clang-Fix-resource-dir-location-for-cross-toolchains.patch \
33 file://0023-clang-Fix-resource-dir-location-for-cross-toolchains.patch \ 33 file://0023-fix-path-to-libffi.patch \
34 file://0024-fix-path-to-libffi.patch \ 34 file://0024-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch \
35 file://0025-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch \ 35 file://0025-libcxx-Define-__NR_futex-to-be-__NR_futex_time64-on-.patch \
36" 36"
37 37
38# Fallback to no-PIE if not set 38# Fallback to no-PIE if not set