summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2024-01-16 13:56:19 -0800
committerKhem Raj <raj.khem@gmail.com>2024-03-06 19:18:22 -0800
commit6f9caa632ca7086e2458b0dbc030221478bd8726 (patch)
treea07e366cb1608bd3df6f73c65839fbcb2e2b29f7
parent019beb6ac20dfa6aa5411f46f08d740bde67ecd5 (diff)
downloadmeta-clang-6f9caa632ca7086e2458b0dbc030221478bd8726.tar.gz
clang: Upgrade to clang 18.1 major release
LLVM - https://github.com/llvm/llvm-project/blob/release/18.x/llvm/docs/ReleaseNotes.rst Clang - https://github.com/llvm/llvm-project/blob/release/18.x/clang/docs/ReleaseNotes.rst libc++ - https://github.com/llvm/llvm-project/blob/release/18.x/libcxx/docs/ReleaseNotes/18.rst lld - https://github.com/llvm/llvm-project/blob/release/18.x/lld/docs/ReleaseNotes.rst extra - https://github.com/llvm/llvm-project/blob/release/18.x/clang-tools-extra/docs/ReleaseNotes.rst Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--conf/layer.conf2
-rw-r--r--recipes-devtools/clang/clang.inc17
-rw-r--r--recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch8
-rw-r--r--recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch2
-rw-r--r--recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch6
-rw-r--r--recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch4
-rw-r--r--recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch8
-rw-r--r--recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch12
-rw-r--r--recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch6
-rw-r--r--recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch6
-rw-r--r--recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch4
-rw-r--r--recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch6
-rw-r--r--recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch6
-rw-r--r--recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch8
-rw-r--r--recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch2
-rw-r--r--recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch8
-rw-r--r--recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch18
-rw-r--r--recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch6
-rw-r--r--recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch14
-rw-r--r--recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch2
-rw-r--r--recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch6
-rw-r--r--recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch8
-rw-r--r--recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch6
-rw-r--r--recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch2
-rw-r--r--recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch6
-rw-r--r--recipes-devtools/clang/clang/0024-libunwind-Added-unw_backtrace-method.patch8
-rw-r--r--recipes-devtools/clang/clang/0025-clang-Do-not-use-install-relative-libc-headers.patch30
-rw-r--r--recipes-devtools/clang/clang/0026-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch8
-rw-r--r--recipes-devtools/clang/clang/0027-Fix-lib-paths-for-OpenEmbedded-Host.patch8
-rw-r--r--recipes-devtools/clang/clang/0028-Correct-library-search-path-for-OpenEmbedded-Host.patch12
-rw-r--r--recipes-devtools/clang/clang/0029-lldb-Link-with-libatomic-on-x86.patch4
-rw-r--r--recipes-devtools/clang/clang/0030-compiler-rt-Enable-__int128-for-ppc32.patch12
-rw-r--r--recipes-devtools/clang/clang/0031-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch8
-rw-r--r--recipes-devtools/clang/clang/0032-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch4
-rw-r--r--recipes-devtools/clang/clang/0033-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch4
-rw-r--r--recipes-devtools/clang/clang/0034-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch10
-rw-r--r--recipes-devtools/clang/clang/0035-compiler-rt-Fix-cmake-check-for-_Float16-and-__bf16.patch42
-rw-r--r--recipes-devtools/clang/clang/0035-libcxx-Implement-LWG3545-std-pointer_traits-should-be-.patch660
-rw-r--r--recipes-devtools/clang/clang_git.bb1
-rw-r--r--recipes-devtools/clang/common.inc2
40 files changed, 186 insertions, 800 deletions
diff --git a/conf/layer.conf b/conf/layer.conf
index 0a71cb1..1bbdae3 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -33,7 +33,7 @@ INHERIT += "clang"
33# Do not include clang in SDK unless user wants to 33# Do not include clang in SDK unless user wants to
34CLANGSDK ??= "0" 34CLANGSDK ??= "0"
35 35
36LLVMVERSION = "17.0.6" 36LLVMVERSION = "18.1.0"
37 37
38require conf/nonclangable.conf 38require conf/nonclangable.conf
39require conf/nonscanable.conf 39require conf/nonscanable.conf
diff --git a/recipes-devtools/clang/clang.inc b/recipes-devtools/clang/clang.inc
index 84185a0..6cde0b0 100644
--- a/recipes-devtools/clang/clang.inc
+++ b/recipes-devtools/clang/clang.inc
@@ -4,14 +4,15 @@ 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 = "17" 7MAJOR_VER = "18"
8MINOR_VER = "0" 8MINOR_VER = "1"
9PATCH_VER = "6" 9PATCH_VER = "0"
10 10# could be 'rcX' or 'git' or empty ( for release )
11SRCREV ?= "6009708b4367171ccdbf4b5905cb6a803753fe18" 11VER_SUFFIX = ""
12 12SRCREV ?= "461274b81d8641eab64d494accddc81d7db8a09e"
13PV = "${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}" 13
14BRANCH = "release/17.x" 14PV = "${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}${VER_SUFFIX}"
15BRANCH = "release/18.x"
15 16
16LLVMMD5SUM = "8a15a0759ef07f2682d2ba4b893c9afe" 17LLVMMD5SUM = "8a15a0759ef07f2682d2ba4b893c9afe"
17CLANGMD5SUM = "ff42885ed2ab98f1ecb8c1fc41205343" 18CLANGMD5SUM = "ff42885ed2ab98f1ecb8c1fc41205343"
diff --git a/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch b/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch
index 6721a2b..bb6fdbe 100644
--- a/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch
+++ b/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch
@@ -1,4 +1,4 @@
1From 6a743f488230aa025016396208d1760835495264 Mon Sep 17 00:00:00 2001 1From 7065ef64c066b9dadf7e751f72e85232d729e225 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] libcxxabi: Find libunwind headers when
@@ -18,10 +18,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
18 1 file changed, 11 insertions(+), 5 deletions(-) 18 1 file changed, 11 insertions(+), 5 deletions(-)
19 19
20diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt 20diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt
21index f380fe6b6b92..145cb9d7ee88 100644 21index da998d2221dc..936b78e4d6dd 100644
22--- a/libcxxabi/CMakeLists.txt 22--- a/libcxxabi/CMakeLists.txt
23+++ b/libcxxabi/CMakeLists.txt 23+++ b/libcxxabi/CMakeLists.txt
24@@ -426,7 +426,7 @@ set(LIBCXXABI_LIBUNWIND_PATH "${LIBCXXABI_LIBUNWIND_PATH}" CACHE PATH 24@@ -422,7 +422,7 @@ set(LIBCXXABI_LIBUNWIND_PATH "${LIBCXXABI_LIBUNWIND_PATH}" CACHE PATH
25 "Specify path to libunwind source." FORCE) 25 "Specify path to libunwind source." FORCE)
26 26
27 if (LIBCXXABI_USE_LLVM_UNWINDER OR LLVM_NATIVE_ARCH MATCHES ARM) 27 if (LIBCXXABI_USE_LLVM_UNWINDER OR LLVM_NATIVE_ARCH MATCHES ARM)
@@ -30,7 +30,7 @@ index f380fe6b6b92..145cb9d7ee88 100644
30 PATHS ${LIBCXXABI_LIBUNWIND_INCLUDES} 30 PATHS ${LIBCXXABI_LIBUNWIND_INCLUDES}
31 ${LIBCXXABI_LIBUNWIND_PATH}/include 31 ${LIBCXXABI_LIBUNWIND_PATH}/include
32 ${CMAKE_BINARY_DIR}/${LIBCXXABI_LIBUNWIND_INCLUDES} 32 ${CMAKE_BINARY_DIR}/${LIBCXXABI_LIBUNWIND_INCLUDES}
33@@ -437,15 +437,21 @@ if (LIBCXXABI_USE_LLVM_UNWINDER OR LLVM_NATIVE_ARCH MATCHES ARM) 33@@ -433,15 +433,21 @@ if (LIBCXXABI_USE_LLVM_UNWINDER OR LLVM_NATIVE_ARCH MATCHES ARM)
34 NO_CMAKE_FIND_ROOT_PATH 34 NO_CMAKE_FIND_ROOT_PATH
35 ) 35 )
36 36
diff --git a/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch b/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch
index df4d620..684d94d 100644
--- a/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch
+++ b/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch
@@ -1,4 +1,4 @@
1From 25b8166b829bc987832a7c7b41581f193a4fabe9 Mon Sep 17 00:00:00 2001 1From 7ca2a8c8590e99cb9edb36e378db39df21c3b0ed 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] compiler-rt: support a new embedded linux target
diff --git a/recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch b/recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch
index 0262008..9f7bf0f 100644
--- a/recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch
+++ b/recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch
@@ -1,4 +1,4 @@
1From fb844bcda4ed86c4f7246b4249d217dca534bc25 Mon Sep 17 00:00:00 2001 1From f69ce2c951a5346127517715681e2dd47d33cf65 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] compiler-rt: Simplify cross-compilation. Don't use
@@ -21,10 +21,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
21 1 file changed, 10 insertions(+), 1 deletion(-) 21 1 file changed, 10 insertions(+), 1 deletion(-)
22 22
23diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt 23diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt
24index 1545340aa8a8..73fad3284810 100644 24index bbb4e8d7c333..583e5630b03c 100644
25--- a/compiler-rt/CMakeLists.txt 25--- a/compiler-rt/CMakeLists.txt
26+++ b/compiler-rt/CMakeLists.txt 26+++ b/compiler-rt/CMakeLists.txt
27@@ -80,7 +80,16 @@ if (COMPILER_RT_STANDALONE_BUILD) 27@@ -82,7 +82,16 @@ if (COMPILER_RT_STANDALONE_BUILD)
28 set(CMAKE_CXX_EXTENSIONS NO) 28 set(CMAKE_CXX_EXTENSIONS NO)
29 29
30 if (NOT LLVM_RUNTIMES_BUILD) 30 if (NOT LLVM_RUNTIMES_BUILD)
diff --git a/recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
index 4d13016..c6189ae 100644
--- a/recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
+++ b/recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch
@@ -1,4 +1,4 @@
1From f258983025dd6a1d8a72f244ac97893c895e5b21 Mon Sep 17 00:00:00 2001 1From f01b464943203b0094bc8b76794e93afc35d912a 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] llvm: TargetLibraryInfo: Undefine libc functions if they are
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 21 insertions(+), 1 deletion(-) 14 1 file changed, 21 insertions(+), 1 deletion(-)
15 15
16diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.def b/llvm/include/llvm/Analysis/TargetLibraryInfo.def 16diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.def b/llvm/include/llvm/Analysis/TargetLibraryInfo.def
17index 03ac422d3e6b..3080b4758894 100644 17index 6bd922eed89e..9e15466f963a 100644
18--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.def 18--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.def
19+++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.def 19+++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.def
20@@ -1348,6 +1348,9 @@ TLI_DEFINE_STRING_INTERNAL("fopen") 20@@ -1348,6 +1348,9 @@ TLI_DEFINE_STRING_INTERNAL("fopen")
diff --git a/recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch b/recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch
index 4447c94..15916a8 100644
--- a/recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch
+++ b/recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch
@@ -1,4 +1,4 @@
1From 588a8694c6540e31140c7e242bfb5e279d6ca08c Mon Sep 17 00:00:00 2001 1From 6543b333f413bc906c8a3577266f1ff6561b2e05 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 and libdir path 4Subject: [PATCH] llvm: allow env override of exe and libdir path
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
19 1 file changed, 19 insertions(+), 6 deletions(-) 19 1 file changed, 19 insertions(+), 6 deletions(-)
20 20
21diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp 21diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
22index e86eb2b44b10..7b2abf318dbe 100644 22index d5b76b1bb6c1..a739f0d8dbea 100644
23--- a/llvm/tools/llvm-config/llvm-config.cpp 23--- a/llvm/tools/llvm-config/llvm-config.cpp
24+++ b/llvm/tools/llvm-config/llvm-config.cpp 24+++ b/llvm/tools/llvm-config/llvm-config.cpp
25@@ -246,6 +246,13 @@ Typical components:\n\ 25@@ -246,6 +246,13 @@ Typical components:\n\
@@ -47,13 +47,13 @@ index e86eb2b44b10..7b2abf318dbe 100644
47 ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include"; 47 ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include";
48@@ -366,12 +373,18 @@ int main(int argc, char **argv) { 48@@ -366,12 +373,18 @@ int main(int argc, char **argv) {
49 sys::fs::make_absolute(ActivePrefix, Path); 49 sys::fs::make_absolute(ActivePrefix, Path);
50 ActiveBinDir = std::string(Path.str()); 50 ActiveBinDir = std::string(Path);
51 } 51 }
52- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; 52- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
53- { 53- {
54- SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR); 54- SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR);
55- sys::fs::make_absolute(ActivePrefix, Path); 55- sys::fs::make_absolute(ActivePrefix, Path);
56- ActiveCMakeDir = std::string(Path.str()); 56- ActiveCMakeDir = std::string(Path);
57+ // Hack for Yocto: we need to override the lib path when we are using 57+ // Hack for Yocto: we need to override the lib path when we are using
58+ // llvm-config from within a target sysroot since LLVM_LIBDIR_SUFFIX 58+ // llvm-config from within a target sysroot since LLVM_LIBDIR_SUFFIX
59+ // maybe different for host llvm vs target e.g. ppc64 Libdir=lib64 but 59+ // maybe different for host llvm vs target e.g. ppc64 Libdir=lib64 but
diff --git a/recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch b/recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch
index c3e7086..7d83a1e 100644
--- a/recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch
+++ b/recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch
@@ -1,4 +1,4 @@
1From f033c3e6da2f09e627cf8cf8fbd753e07e0ebacd Mon Sep 17 00:00:00 2001 1From ac8010d0f42375b862be8d020b39862dde2d3739 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] clang: driver: Check sysroot for ldso path
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 21 insertions(+), 1 deletion(-) 15 1 file changed, 21 insertions(+), 1 deletion(-)
16 16
17diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 17diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
18index 1ba222bf83b1..b2ed29621879 100644 18index 4300a2bdff17..fe1bea2bde9d 100644
19--- a/clang/lib/Driver/ToolChains/Linux.cpp 19--- a/clang/lib/Driver/ToolChains/Linux.cpp
20+++ b/clang/lib/Driver/ToolChains/Linux.cpp 20+++ b/clang/lib/Driver/ToolChains/Linux.cpp
21@@ -495,7 +495,11 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 21@@ -499,7 +499,11 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
22 Triple.getEnvironment() == llvm::Triple::GNUEABIHF || 22 Triple.getEnvironment() == llvm::Triple::GNUEABIHF ||
23 tools::arm::getARMFloatABI(*this, Args) == tools::arm::FloatABI::Hard; 23 tools::arm::getARMFloatABI(*this, Args) == tools::arm::FloatABI::Hard;
24 24
@@ -31,7 +31,7 @@ index 1ba222bf83b1..b2ed29621879 100644
31 Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3"; 31 Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3";
32 break; 32 break;
33 } 33 }
34@@ -550,11 +554,19 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 34@@ -554,11 +558,19 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
35 LibDir = "lib64"; 35 LibDir = "lib64";
36 Loader = 36 Loader =
37 (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1"; 37 (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
@@ -51,7 +51,7 @@ index 1ba222bf83b1..b2ed29621879 100644
51 break; 51 break;
52 case llvm::Triple::riscv32: { 52 case llvm::Triple::riscv32: {
53 StringRef ABIName = tools::riscv::getRISCVABI(Args, Triple); 53 StringRef ABIName = tools::riscv::getRISCVABI(Args, Triple);
54@@ -576,6 +588,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 54@@ -580,6 +592,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
55 case llvm::Triple::sparcv9: 55 case llvm::Triple::sparcv9:
56 LibDir = "lib64"; 56 LibDir = "lib64";
57 Loader = "ld-linux.so.2"; 57 Loader = "ld-linux.so.2";
@@ -62,7 +62,7 @@ index 1ba222bf83b1..b2ed29621879 100644
62 break; 62 break;
63 case llvm::Triple::systemz: 63 case llvm::Triple::systemz:
64 LibDir = "lib"; 64 LibDir = "lib";
65@@ -590,6 +606,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 65@@ -594,6 +610,10 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
66 66
67 LibDir = X32 ? "libx32" : "lib64"; 67 LibDir = X32 ? "libx32" : "lib64";
68 Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2"; 68 Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
diff --git a/recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch b/recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch
index 48af473..c6207c6 100644
--- a/recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch
+++ b/recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch
@@ -1,4 +1,4 @@
1From b497f95862cfe82aa2d581798182d2c2112796ae Mon Sep 17 00:00:00 2001 1From fbf2696149ab70f296b6a36e1867ee487bb5b3d4 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] clang: Driver/tools.cpp: Add -lssp_nonshared on musl
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 6 insertions(+) 14 1 file changed, 6 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 40038dce47d8..c642946c5cfb 100644 17index e5e1b1d77269..7b43cde6b884 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@@ -636,6 +636,12 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, 20@@ -628,6 +628,12 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
21 if (IsIAMCU) 21 if (IsIAMCU)
22 CmdArgs.push_back("-lgloss"); 22 CmdArgs.push_back("-lgloss");
23 23
diff --git a/recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch b/recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch
index ee75cbc..bcdfa75 100644
--- a/recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch
+++ b/recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch
@@ -1,4 +1,4 @@
1From acfefc5462044827ba3b7d0ac7512a9d9461a833 Mon Sep 17 00:00:00 2001 1From 32028d3635b5f5f00a538e60d7fc89a3576d1d1f 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] clang: Prepend trailing '/' to sysroot
@@ -25,10 +25,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
25 1 file changed, 1 insertion(+), 1 deletion(-) 25 1 file changed, 1 insertion(+), 1 deletion(-)
26 26
27diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 27diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
28index b2ed29621879..d2fa4b2f11cf 100644 28index fe1bea2bde9d..9cfc135ed2c0 100644
29--- a/clang/lib/Driver/ToolChains/Linux.cpp 29--- a/clang/lib/Driver/ToolChains/Linux.cpp
30+++ b/clang/lib/Driver/ToolChains/Linux.cpp 30+++ b/clang/lib/Driver/ToolChains/Linux.cpp
31@@ -215,7 +215,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) 31@@ -219,7 +219,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
32 Multilibs = GCCInstallation.getMultilibs(); 32 Multilibs = GCCInstallation.getMultilibs();
33 SelectedMultilibs.assign({GCCInstallation.getMultilib()}); 33 SelectedMultilibs.assign({GCCInstallation.getMultilib()});
34 llvm::Triple::ArchType Arch = Triple.getArch(); 34 llvm::Triple::ArchType Arch = Triple.getArch();
diff --git a/recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch b/recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch
index 2e83358..2a96090 100644
--- a/recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch
+++ b/recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch
@@ -1,4 +1,4 @@
1From 9069a7f709cdb5392c9e0ecd863d62176d080a91 Mon Sep 17 00:00:00 2001 1From 5a2e2c7600e855782be747d28b16377f7d3354a8 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] clang: Look inside the target sysroot for compiler runtime
@@ -16,7 +16,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
16 1 file changed, 5 insertions(+), 1 deletion(-) 16 1 file changed, 5 insertions(+), 1 deletion(-)
17 17
18diff --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
19index 8dafc3d481c2..3e0f7b64b0db 100644 19index 388030592b48..c59700b4a7ab 100644
20--- a/clang/lib/Driver/ToolChain.cpp 20--- a/clang/lib/Driver/ToolChain.cpp
21+++ b/clang/lib/Driver/ToolChain.cpp 21+++ b/clang/lib/Driver/ToolChain.cpp
22@@ -15,6 +15,7 @@ 22@@ -15,6 +15,7 @@
diff --git a/recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch b/recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch
index 39f4044..85f0c81 100644
--- a/recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch
+++ b/recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch
@@ -1,4 +1,4 @@
1From fcc667e02238ad83e5db2ecc1f060af6dcc618f1 Mon Sep 17 00:00:00 2001 1From 840960c4a146a90a1e9b8d381b1bab64701650a2 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 20 Mar 2021 16:09:16 -0700 3Date: Sat, 20 Mar 2021 16:09:16 -0700
4Subject: [PATCH] clang: Define / releative gcc installation dir 4Subject: [PATCH] clang: Define / releative gcc installation dir
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 7 insertions(+), 7 deletions(-) 15 1 file changed, 7 insertions(+), 7 deletions(-)
16 16
17diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp 17diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
18index c642946c5cfb..e1c2cdc0e93b 100644 18index 7b43cde6b884..1ea6927d06f3 100644
19--- a/clang/lib/Driver/ToolChains/Gnu.cpp 19--- a/clang/lib/Driver/ToolChains/Gnu.cpp
20+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 20+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
21@@ -2744,19 +2744,19 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( 21@@ -2913,19 +2913,19 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple(
22 // Whether this library suffix is relevant for the triple. 22 // Whether this library suffix is relevant for the triple.
23 bool Active; 23 bool Active;
24 } Suffixes[] = { 24 } Suffixes[] = {
diff --git a/recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch b/recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch
index 6ccc25d..0db75c7 100644
--- a/recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch
+++ b/recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch
@@ -1,4 +1,4 @@
1From 85230d89fc000068097599df6c8750d75cf84c72 Mon Sep 17 00:00:00 2001 1From 702335a68f81dfa1ac89b759846faa8a479bdec7 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] clang: Add -lpthread and -ldl along with -lunwind for static
@@ -21,10 +21,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
21 1 file changed, 2 insertions(+) 21 1 file changed, 2 insertions(+)
22 22
23diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp 23diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
24index 0d6907b8e5c7..778da2b7b4a5 100644 24index 2b916f000336..de823347a527 100644
25--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp 25--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
26+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp 26+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
27@@ -1820,6 +1820,8 @@ static void AddUnwindLibrary(const ToolChain &TC, const Driver &D, 27@@ -2179,6 +2179,8 @@ static void AddUnwindLibrary(const ToolChain &TC, const Driver &D,
28 CmdArgs.push_back("-lunwind"); 28 CmdArgs.push_back("-lunwind");
29 } else if (LGT == LibGccType::StaticLibGcc) { 29 } else if (LGT == LibGccType::StaticLibGcc) {
30 CmdArgs.push_back("-l:libunwind.a"); 30 CmdArgs.push_back("-l:libunwind.a");
diff --git a/recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch b/recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch
index 3f5c9ab..e929194 100644
--- a/recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch
+++ b/recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch
@@ -1,4 +1,4 @@
1From 84a2bee19c577eb56c381903959c77271a4368e5 Mon Sep 17 00:00:00 2001 1From b0132d5b8f5b92f66087fe11713885d8916554c2 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] Pass PYTHON_EXECUTABLE when cross compiling for native build
@@ -11,14 +11,14 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
11 1 file changed, 1 insertion(+) 11 1 file changed, 1 insertion(+)
12 12
13diff --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
14index 6af47b51d4c6..bf9adea6814a 100644 14index 55bf3be75642..71b09ec05b68 100644
15--- a/llvm/cmake/modules/CrossCompile.cmake 15--- a/llvm/cmake/modules/CrossCompile.cmake
16+++ b/llvm/cmake/modules/CrossCompile.cmake 16+++ b/llvm/cmake/modules/CrossCompile.cmake
17@@ -86,6 +86,7 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype) 17@@ -90,6 +90,7 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype)
18 -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN="${LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN}" 18 -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN="${LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN}"
19 -DLLVM_INCLUDE_BENCHMARKS=OFF 19 -DLLVM_INCLUDE_BENCHMARKS=OFF
20 -DLLVM_INCLUDE_TESTS=OFF 20 -DLLVM_INCLUDE_TESTS=OFF
21+ -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}" 21+ -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}"
22 ${build_type_flags} ${linker_flag} ${external_clang_dir} 22 ${build_type_flags} ${linker_flag} ${external_clang_dir} ${libc_flags}
23 ${ARGN} 23 ${ARGN}
24 WORKING_DIRECTORY ${${project_name}_${target_name}_BUILD} 24 WORKING_DIRECTORY ${${project_name}_${target_name}_BUILD}
diff --git a/recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch b/recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch
index 855d544..4c333a0 100644
--- a/recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch
+++ b/recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch
@@ -1,4 +1,4 @@
1From 129d994b584cab112d39916075eef8c833813677 Mon Sep 17 00:00:00 2001 1From b2ed6b57edd6afd6f2a5376a0bdea36d017fc95f 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] Check for atomic<double> intrinsics
diff --git a/recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch b/recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch
index b9d88f8..df22737 100644
--- a/recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch
+++ b/recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch
@@ -1,4 +1,4 @@
1From c646fe1dd7b9fcb80de27c8b4da916bd9e0adb7f Mon Sep 17 00:00:00 2001 1From 762c7af55064261f061fcd5ce0bd2eb93cbd425b 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] libcxx: Add compiler runtime library to link step for libcxx
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 2 insertions(+), 2 deletions(-) 14 1 file changed, 2 insertions(+), 2 deletions(-)
15 15
16diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt 16diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
17index 35b466527096..f261c1def1ca 100644 17index 44a088663463..2a8546165f44 100644
18--- a/libcxx/src/CMakeLists.txt 18--- a/libcxx/src/CMakeLists.txt
19+++ b/libcxx/src/CMakeLists.txt 19+++ b/libcxx/src/CMakeLists.txt
20@@ -189,7 +189,7 @@ if (LIBCXX_ENABLE_SHARED) 20@@ -198,7 +198,7 @@ if (LIBCXX_ENABLE_SHARED)
21 add_library(cxx_shared SHARED ${exclude_from_all} ${LIBCXX_SOURCES} ${LIBCXX_HEADERS}) 21 add_library(cxx_shared SHARED ${exclude_from_all} ${LIBCXX_SOURCES} ${LIBCXX_HEADERS})
22 target_include_directories(cxx_shared PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 22 target_include_directories(cxx_shared PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
23 target_link_libraries(cxx_shared PUBLIC cxx-headers 23 target_link_libraries(cxx_shared PUBLIC cxx-headers
@@ -26,7 +26,7 @@ index 35b466527096..f261c1def1ca 100644
26 set_target_properties(cxx_shared 26 set_target_properties(cxx_shared
27 PROPERTIES 27 PROPERTIES
28 COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}" 28 COMPILE_FLAGS "${LIBCXX_COMPILE_FLAGS}"
29@@ -282,7 +282,7 @@ if (LIBCXX_ENABLE_STATIC) 29@@ -291,7 +291,7 @@ if (LIBCXX_ENABLE_STATIC)
30 add_library(cxx_static STATIC ${exclude_from_all} ${LIBCXX_SOURCES} ${LIBCXX_HEADERS}) 30 add_library(cxx_static STATIC ${exclude_from_all} ${LIBCXX_SOURCES} ${LIBCXX_HEADERS})
31 target_include_directories(cxx_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 31 target_include_directories(cxx_static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
32 target_link_libraries(cxx_static PUBLIC cxx-headers 32 target_link_libraries(cxx_static PUBLIC cxx-headers
diff --git a/recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch b/recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch
index a421c6c..1e8aedc 100644
--- a/recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch
+++ b/recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch
@@ -1,4 +1,4 @@
1From ae428248f697ccf8b98c0da5a9983a1f0ff89bd5 Mon Sep 17 00:00:00 2001 1From e6592691f3f5b13785adfa7cfca938742a35fb29 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] clang,llvm: cmake: Fix configure for packages using
@@ -52,10 +52,10 @@ index 75b0080f6715..ddf446a13eca 100644
52 endif() 52 endif()
53 endmacro() 53 endmacro()
54diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake 54diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
55index 230620c37027..cb5a9bd41ee8 100644 55index 3bc78b0dc935..bc492ceb90db 100644
56--- a/llvm/cmake/modules/AddLLVM.cmake 56--- a/llvm/cmake/modules/AddLLVM.cmake
57+++ b/llvm/cmake/modules/AddLLVM.cmake 57+++ b/llvm/cmake/modules/AddLLVM.cmake
58@@ -1353,7 +1353,6 @@ macro(llvm_add_tool project name) 58@@ -1368,7 +1368,6 @@ macro(llvm_add_tool project name)
59 if( LLVM_BUILD_TOOLS ) 59 if( LLVM_BUILD_TOOLS )
60 get_target_export_arg(${name} LLVM export_to_llvmexports) 60 get_target_export_arg(${name} LLVM export_to_llvmexports)
61 install(TARGETS ${name} 61 install(TARGETS ${name}
@@ -63,7 +63,7 @@ index 230620c37027..cb5a9bd41ee8 100644
63 RUNTIME DESTINATION ${${project}_TOOLS_INSTALL_DIR} 63 RUNTIME DESTINATION ${${project}_TOOLS_INSTALL_DIR}
64 COMPONENT ${name}) 64 COMPONENT ${name})
65 65
66@@ -1364,9 +1363,6 @@ macro(llvm_add_tool project name) 66@@ -1379,9 +1378,6 @@ macro(llvm_add_tool project name)
67 endif() 67 endif()
68 endif() 68 endif()
69 endif() 69 endif()
@@ -73,7 +73,7 @@ index 230620c37027..cb5a9bd41ee8 100644
73 set_target_properties(${name} PROPERTIES FOLDER "Tools") 73 set_target_properties(${name} PROPERTIES FOLDER "Tools")
74 endif() 74 endif()
75 endmacro(llvm_add_tool project name) 75 endmacro(llvm_add_tool project name)
76@@ -1411,7 +1407,6 @@ macro(add_llvm_utility name) 76@@ -1426,7 +1422,6 @@ macro(add_llvm_utility name)
77 if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) 77 if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
78 get_target_export_arg(${name} LLVM export_to_llvmexports) 78 get_target_export_arg(${name} LLVM export_to_llvmexports)
79 install(TARGETS ${name} 79 install(TARGETS ${name}
@@ -81,7 +81,7 @@ index 230620c37027..cb5a9bd41ee8 100644
81 RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR} 81 RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR}
82 COMPONENT ${name}) 82 COMPONENT ${name})
83 83
84@@ -1420,7 +1415,6 @@ macro(add_llvm_utility name) 84@@ -1435,7 +1430,6 @@ macro(add_llvm_utility name)
85 DEPENDS ${name} 85 DEPENDS ${name}
86 COMPONENT ${name}) 86 COMPONENT ${name})
87 endif() 87 endif()
@@ -90,10 +90,10 @@ index 230620c37027..cb5a9bd41ee8 100644
90 set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY ${name}) 90 set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY ${name})
91 endif() 91 endif()
92diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake 92diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake
93index 7fd6628ef55d..57a996d03755 100644 93index 1d18fdde2bb9..c9363ffb3376 100644
94--- a/llvm/cmake/modules/TableGen.cmake 94--- a/llvm/cmake/modules/TableGen.cmake
95+++ b/llvm/cmake/modules/TableGen.cmake 95+++ b/llvm/cmake/modules/TableGen.cmake
96@@ -195,12 +195,7 @@ macro(add_tablegen target project) 96@@ -222,12 +222,7 @@ macro(add_tablegen target project)
97 97
98 if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND 98 if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND
99 (LLVM_BUILD_UTILS OR ${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS)) 99 (LLVM_BUILD_UTILS OR ${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS))
@@ -106,7 +106,7 @@ index 7fd6628ef55d..57a996d03755 100644
106 COMPONENT ${target} 106 COMPONENT ${target}
107 RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}") 107 RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}")
108 if(NOT LLVM_ENABLE_IDE) 108 if(NOT LLVM_ENABLE_IDE)
109@@ -211,6 +206,5 @@ macro(add_tablegen target project) 109@@ -238,6 +233,5 @@ macro(add_tablegen target project)
110 endif() 110 endif()
111 if(ADD_TABLEGEN_EXPORT) 111 if(ADD_TABLEGEN_EXPORT)
112 string(TOUPPER ${ADD_TABLEGEN_EXPORT} export_upper) 112 string(TOUPPER ${ADD_TABLEGEN_EXPORT} export_upper)
diff --git a/recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch b/recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch
index 8e57922..c5c413f 100644
--- a/recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch
+++ b/recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch
@@ -1,4 +1,4 @@
1From f45ef34d9d5a3ff049c39dd2d3d6aed72eb5b0bc Mon Sep 17 00:00:00 2001 1From cc868200402deee5203b498d72dc26f944f10a55 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] clang: Fix resource dir location for cross toolchains
@@ -20,10 +20,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
20 1 file changed, 7 insertions(+), 1 deletion(-) 20 1 file changed, 7 insertions(+), 1 deletion(-)
21 21
22diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp 22diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
23index bdbdad9362e1..a0d4a04b42bb 100644 23index 93cddf742d52..88291dd125d3 100644
24--- a/clang/lib/Driver/Driver.cpp 24--- a/clang/lib/Driver/Driver.cpp
25+++ b/clang/lib/Driver/Driver.cpp 25+++ b/clang/lib/Driver/Driver.cpp
26@@ -183,9 +183,15 @@ std::string Driver::GetResourcesPath(StringRef BinaryPath, 26@@ -179,9 +179,15 @@ std::string Driver::GetResourcesPath(StringRef BinaryPath,
27 // With a static-library build of libclang, LibClangPath will contain the 27 // With a static-library build of libclang, LibClangPath will contain the
28 // path of the embedding binary, which for LLVM binaries will be in bin/. 28 // path of the embedding binary, which for LLVM binaries will be in bin/.
29 // ../lib gets us to lib/ in both cases. 29 // ../lib gets us to lib/ in both cases.
diff --git a/recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch b/recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch
index cd111bd..f812fcd 100644
--- a/recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch
+++ b/recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch
@@ -1,4 +1,4 @@
1From 53138d6a7fe341821a73719f776ee5535d759c3b Mon Sep 17 00:00:00 2001 1From c6d4b091b470d6a6cff90f19416c990be8b08319 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] clang: driver: Add dyld-prefix when checking sysroot for ldso
@@ -19,10 +19,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
19 1 file changed, 10 insertions(+), 10 deletions(-) 19 1 file changed, 10 insertions(+), 10 deletions(-)
20 20
21diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 21diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
22index d2fa4b2f11cf..42b88e76a9d5 100644 22index 9cfc135ed2c0..6df8c58076c9 100644
23--- a/clang/lib/Driver/ToolChains/Linux.cpp 23--- a/clang/lib/Driver/ToolChains/Linux.cpp
24+++ b/clang/lib/Driver/ToolChains/Linux.cpp 24+++ b/clang/lib/Driver/ToolChains/Linux.cpp
25@@ -496,8 +496,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 25@@ -500,8 +500,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
26 tools::arm::getARMFloatABI(*this, Args) == tools::arm::FloatABI::Hard; 26 tools::arm::getARMFloatABI(*this, Args) == tools::arm::FloatABI::Hard;
27 27
28 LibDir = "lib32"; 28 LibDir = "lib32";
@@ -33,7 +33,7 @@ index d2fa4b2f11cf..42b88e76a9d5 100644
33 LibDir = "lib"; 33 LibDir = "lib";
34 } 34 }
35 Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3"; 35 Loader = HF ? "ld-linux-armhf.so.3" : "ld-linux.so.3";
36@@ -554,8 +554,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 36@@ -558,8 +558,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
37 LibDir = "lib64"; 37 LibDir = "lib64";
38 Loader = 38 Loader =
39 (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1"; 39 (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
@@ -44,7 +44,7 @@ index d2fa4b2f11cf..42b88e76a9d5 100644
44 LibDir = "lib"; 44 LibDir = "lib";
45 } 45 }
46 break; 46 break;
47@@ -563,8 +563,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 47@@ -567,8 +567,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
48 LibDir = "lib64"; 48 LibDir = "lib64";
49 Loader = 49 Loader =
50 (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; 50 (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2";
@@ -55,7 +55,7 @@ index d2fa4b2f11cf..42b88e76a9d5 100644
55 LibDir = "lib"; 55 LibDir = "lib";
56 } 56 }
57 break; 57 break;
58@@ -588,8 +588,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 58@@ -592,8 +592,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
59 case llvm::Triple::sparcv9: 59 case llvm::Triple::sparcv9:
60 LibDir = "lib64"; 60 LibDir = "lib64";
61 Loader = "ld-linux.so.2"; 61 Loader = "ld-linux.so.2";
@@ -66,7 +66,7 @@ index d2fa4b2f11cf..42b88e76a9d5 100644
66 LibDir = "lib"; 66 LibDir = "lib";
67 } 67 }
68 break; 68 break;
69@@ -606,8 +606,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { 69@@ -610,8 +610,8 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
70 70
71 LibDir = X32 ? "libx32" : "lib64"; 71 LibDir = X32 ? "libx32" : "lib64";
72 Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2"; 72 Loader = X32 ? "ld-linux-x32.so.2" : "ld-linux-x86-64.so.2";
diff --git a/recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch b/recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch
index 6de7a36..f9a7e73 100644
--- a/recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch
+++ b/recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch
@@ -1,4 +1,4 @@
1From 61de53f94868705c7a0379c3f20e6b9de76c6198 Mon Sep 17 00:00:00 2001 1From 376554f8f40211f36444a23011e80ad950274723 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 14 Oct 2020 22:19:57 -0700 3Date: Wed, 14 Oct 2020 22:19:57 -0700
4Subject: [PATCH] clang: Use python3 in python scripts 4Subject: [PATCH] clang: Use python3 in python scripts
diff --git a/recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch b/recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch
index 412b1c5..988bbd1 100644
--- a/recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch
+++ b/recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch
@@ -1,4 +1,4 @@
1From 83fc70ac26c2412382341be61978e51bbd2e6c4f Mon Sep 17 00:00:00 2001 1From fc730bc3b01378f457f43d5c684bc4cee818abc3 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Mon, 25 Jan 2021 16:14:35 +0800 3Date: Mon, 25 Jan 2021 16:14:35 +0800
4Subject: [PATCH] For x86_64, set Yocto based GCC install search path 4Subject: [PATCH] For x86_64, set Yocto based GCC install search path
@@ -57,10 +57,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
57 1 file changed, 1 insertion(+) 57 1 file changed, 1 insertion(+)
58 58
59diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp 59diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
60index e1c2cdc0e93b..0b355d9a3f4b 100644 60index 1ea6927d06f3..185ea3df16f5 100644
61--- a/clang/lib/Driver/ToolChains/Gnu.cpp 61--- a/clang/lib/Driver/ToolChains/Gnu.cpp
62+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 62+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
63@@ -2334,6 +2334,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( 63@@ -2488,6 +2488,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
64 "x86_64-redhat-linux", "x86_64-suse-linux", 64 "x86_64-redhat-linux", "x86_64-suse-linux",
65 "x86_64-manbo-linux-gnu", "x86_64-linux-gnu", 65 "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
66 "x86_64-slackware-linux", "x86_64-unknown-linux", 66 "x86_64-slackware-linux", "x86_64-unknown-linux",
diff --git a/recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch b/recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch
index db94867..a31be84 100644
--- a/recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch
+++ b/recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch
@@ -1,4 +1,4 @@
1From 45a0c6817175c12aac685b4d45badf761bd7f4fc Mon Sep 17 00:00:00 2001 1From ce223c530a076c7e41b1ea23c747d12dde9e1120 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 7 Feb 2021 23:58:41 -0800 3Date: Sun, 7 Feb 2021 23:58:41 -0800
4Subject: [PATCH] llvm: Do not use find_library for ncurses 4Subject: [PATCH] llvm: Do not use find_library for ncurses
@@ -18,10 +18,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
18 2 files changed, 2 insertions(+), 2 deletions(-) 18 2 files changed, 2 insertions(+), 2 deletions(-)
19 19
20diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake 20diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake
21index 8d3dc8d208b2..14dfbe147bdd 100644 21index 2ca18ebb4ad4..51c56f1e0b8b 100644
22--- a/compiler-rt/cmake/config-ix.cmake 22--- a/compiler-rt/cmake/config-ix.cmake
23+++ b/compiler-rt/cmake/config-ix.cmake 23+++ b/compiler-rt/cmake/config-ix.cmake
24@@ -177,7 +177,7 @@ else() 24@@ -188,7 +188,7 @@ else()
25 set(MAYBE_REQUIRED) 25 set(MAYBE_REQUIRED)
26 endif() 26 endif()
27 if(LLVM_ENABLE_TERMINFO) 27 if(LLVM_ENABLE_TERMINFO)
@@ -31,7 +31,7 @@ index 8d3dc8d208b2..14dfbe147bdd 100644
31 if(COMPILER_RT_TERMINFO_LIB) 31 if(COMPILER_RT_TERMINFO_LIB)
32 set(LLVM_ENABLE_TERMINFO 1) 32 set(LLVM_ENABLE_TERMINFO 1)
33diff --git a/llvm/cmake/modules/FindTerminfo.cmake b/llvm/cmake/modules/FindTerminfo.cmake 33diff --git a/llvm/cmake/modules/FindTerminfo.cmake b/llvm/cmake/modules/FindTerminfo.cmake
34index eef1f95853eb..b3b330dd3d59 100644 34index 163af6697067..bf2e760bed8a 100644
35--- a/llvm/cmake/modules/FindTerminfo.cmake 35--- a/llvm/cmake/modules/FindTerminfo.cmake
36+++ b/llvm/cmake/modules/FindTerminfo.cmake 36+++ b/llvm/cmake/modules/FindTerminfo.cmake
37@@ -11,7 +11,7 @@ 37@@ -11,7 +11,7 @@
diff --git a/recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch b/recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch
index 480163e..0856410 100644
--- a/recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch
+++ b/recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch
@@ -1,4 +1,4 @@
1From 3ee6071f459375e0534db3bd84b1a71a5694daef Mon Sep 17 00:00:00 2001 1From 1cf1458650a3cfed4bab56ca0fb026d091ab725b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 11 Feb 2021 16:42:49 -0800 3Date: Thu, 11 Feb 2021 16:42:49 -0800
4Subject: [PATCH] llvm: Insert anchor for adding OE distro vendor names 4Subject: [PATCH] llvm: Insert anchor for adding OE distro vendor names
@@ -18,10 +18,10 @@ Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
18 1 file changed, 1 insertion(+), 1 deletion(-) 18 1 file changed, 1 insertion(+), 1 deletion(-)
19 19
20diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp 20diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp
21index a3d6a06af976..953132c543cd 100644 21index 0bbe8a3cedfd..dbc1240703a0 100644
22--- a/llvm/lib/TargetParser/Triple.cpp 22--- a/llvm/lib/TargetParser/Triple.cpp
23+++ b/llvm/lib/TargetParser/Triple.cpp 23+++ b/llvm/lib/TargetParser/Triple.cpp
24@@ -569,7 +569,7 @@ static Triple::VendorType parseVendor(StringRef VendorName) { 24@@ -601,7 +601,7 @@ static Triple::VendorType parseVendor(StringRef VendorName) {
25 .Case("amd", Triple::AMD) 25 .Case("amd", Triple::AMD)
26 .Case("mesa", Triple::Mesa) 26 .Case("mesa", Triple::Mesa)
27 .Case("suse", Triple::SUSE) 27 .Case("suse", Triple::SUSE)
diff --git a/recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch b/recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch
index 3813446..2e2233e 100644
--- a/recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch
+++ b/recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch
@@ -1,4 +1,4 @@
1From 073a80b1f50e27c88c931bedea516effcff0945e Mon Sep 17 00:00:00 2001 1From 30bc9fac3220d919a3e94b14b47250247e5686e4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 19 May 2021 17:32:13 -0700 3Date: Wed, 19 May 2021 17:32:13 -0700
4Subject: [PATCH] compiler-rt: Do not use backtrace APIs on non-glibc linux 4Subject: [PATCH] compiler-rt: Do not use backtrace APIs on non-glibc linux
diff --git a/recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch b/recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch
index 349c1f8..2ccdf64 100644
--- a/recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch
+++ b/recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch
@@ -1,4 +1,4 @@
1From 64bf8ed61750e9139851c866d9cfbed9a3fb5bb9 Mon Sep 17 00:00:00 2001 1From 1cca5d6c319fb2ebff798882d6f7cf55ae225d8e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 19 May 2021 17:56:03 -0700 3Date: Wed, 19 May 2021 17:56:03 -0700
4Subject: [PATCH] clang: Fix x86 triple for non-debian multiarch linux distros 4Subject: [PATCH] clang: Fix x86 triple for non-debian multiarch linux distros
@@ -13,10 +13,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 1 file changed, 3 insertions(+) 13 1 file changed, 3 insertions(+)
14 14
15diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 15diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
16index 42b88e76a9d5..ef8435385130 100644 16index 6df8c58076c9..cf549331d255 100644
17--- a/clang/lib/Driver/ToolChains/Linux.cpp 17--- a/clang/lib/Driver/ToolChains/Linux.cpp
18+++ b/clang/lib/Driver/ToolChains/Linux.cpp 18+++ b/clang/lib/Driver/ToolChains/Linux.cpp
19@@ -703,6 +703,9 @@ void Linux::addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, 19@@ -707,6 +707,9 @@ void Linux::addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
20 GCCInstallation.getTriple().getArch() == llvm::Triple::x86 20 GCCInstallation.getTriple().getArch() == llvm::Triple::x86
21 ? "i386-linux-gnu" 21 ? "i386-linux-gnu"
22 : TripleStr; 22 : TripleStr;
diff --git a/recipes-devtools/clang/clang/0024-libunwind-Added-unw_backtrace-method.patch b/recipes-devtools/clang/clang/0024-libunwind-Added-unw_backtrace-method.patch
index 170999b..9578fe6 100644
--- a/recipes-devtools/clang/clang/0024-libunwind-Added-unw_backtrace-method.patch
+++ b/recipes-devtools/clang/clang/0024-libunwind-Added-unw_backtrace-method.patch
@@ -1,4 +1,4 @@
1From 755f0c575bb3efa82703eda87df3c37aeb6f96b0 Mon Sep 17 00:00:00 2001 1From 391c312f710887305d6b91c2c5e8d26536ff1328 Mon Sep 17 00:00:00 2001
2From: Maksim Kita <maksim-kita@yandex-team.ru> 2From: Maksim Kita <maksim-kita@yandex-team.ru>
3Date: Sun, 23 May 2021 10:27:29 +0000 3Date: Sun, 23 May 2021 10:27:29 +0000
4Subject: [PATCH] libunwind: Added unw_backtrace method 4Subject: [PATCH] libunwind: Added unw_backtrace method
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
12 2 files changed, 21 insertions(+) 12 2 files changed, 21 insertions(+)
13 13
14diff --git a/libunwind/include/libunwind.h b/libunwind/include/libunwind.h 14diff --git a/libunwind/include/libunwind.h b/libunwind/include/libunwind.h
15index d2ad5ab87122..d735d955aee2 100644 15index b2dae8feed9a..0ab974c9bfa4 100644
16--- a/libunwind/include/libunwind.h 16--- a/libunwind/include/libunwind.h
17+++ b/libunwind/include/libunwind.h 17+++ b/libunwind/include/libunwind.h
18@@ -130,6 +130,7 @@ extern int unw_is_fpreg(unw_cursor_t *, unw_regnum_t) LIBUNWIND_AVAIL; 18@@ -130,6 +130,7 @@ extern int unw_is_fpreg(unw_cursor_t *, unw_regnum_t) LIBUNWIND_AVAIL;
@@ -24,10 +24,10 @@ index d2ad5ab87122..d735d955aee2 100644
24 extern unw_addr_space_t unw_local_addr_space; 24 extern unw_addr_space_t unw_local_addr_space;
25 25
26diff --git a/libunwind/src/libunwind.cpp b/libunwind/src/libunwind.cpp 26diff --git a/libunwind/src/libunwind.cpp b/libunwind/src/libunwind.cpp
27index 1bd18659b786..64819826cfea 100644 27index 217dde909863..5797c806c084 100644
28--- a/libunwind/src/libunwind.cpp 28--- a/libunwind/src/libunwind.cpp
29+++ b/libunwind/src/libunwind.cpp 29+++ b/libunwind/src/libunwind.cpp
30@@ -431,6 +431,26 @@ int __unw_remove_find_dynamic_unwind_sections( 30@@ -432,6 +432,26 @@ int __unw_remove_find_dynamic_unwind_sections(
31 31
32 #endif // __APPLE__ 32 #endif // __APPLE__
33 33
diff --git a/recipes-devtools/clang/clang/0025-clang-Do-not-use-install-relative-libc-headers.patch b/recipes-devtools/clang/clang/0025-clang-Do-not-use-install-relative-libc-headers.patch
index 8d35b41..539045d 100644
--- a/recipes-devtools/clang/clang/0025-clang-Do-not-use-install-relative-libc-headers.patch
+++ b/recipes-devtools/clang/clang/0025-clang-Do-not-use-install-relative-libc-headers.patch
@@ -1,4 +1,4 @@
1From 6fd8342c1b41a5d3f2aad1e8b215d1d9c70df800 Mon Sep 17 00:00:00 2001 1From 75fba7350f0b161254994279d26ba720dde270ee Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 11 Aug 2021 18:37:11 -0700 3Date: Wed, 11 Aug 2021 18:37:11 -0700
4Subject: [PATCH] clang: Do not use install relative libc++ headers 4Subject: [PATCH] clang: Do not use install relative libc++ headers
@@ -12,21 +12,23 @@ libcxx e.g. chromium
12Upstream-Status: Pending 12Upstream-Status: Pending
13Signed-off-by: Khem Raj <raj.khem@gmail.com> 13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14--- 14---
15 clang/lib/Driver/ToolChains/Gnu.cpp | 4 +++- 15 clang/lib/Driver/ToolChains/Gnu.cpp | 5 ++++-
16 1 file changed, 3 insertions(+), 1 deletion(-) 16 1 file changed, 4 insertions(+), 1 deletion(-)
17 17
18diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp 18diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
19index 0b355d9a3f4b..f228bd14e8a8 100644 19index 185ea3df16f5..d883dc3e7558 100644
20--- a/clang/lib/Driver/ToolChains/Gnu.cpp 20--- a/clang/lib/Driver/ToolChains/Gnu.cpp
21+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 21+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
22@@ -3128,7 +3128,9 @@ Generic_GCC::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, 22@@ -3313,8 +3313,11 @@ Generic_GCC::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
23 23 // incompatible with the NDK libraries.
24 // Android never uses the libc++ headers installed alongside the toolchain, 24 SmallString<128> DriverIncludeDir(getDriver().Dir);
25 // which are generally incompatible with the NDK libraries anyway. 25 llvm::sys::path::append(DriverIncludeDir, "..", "include");
26- if (!getTriple().isAndroid()) 26+
27+ // And also do not add it when --sysroot is specified, since it would expect 27+ // do not add it when --sysroot is specified, since it would expect
28+ // libc++ headers from sysroot 28+ // libc++ headers from sysroot and not relative to compiler install location
29+ if (!getTriple().isAndroid() && SysRoot.empty()) 29 if (AddIncludePath(DriverIncludeDir,
30 if (AddIncludePath(getDriver().Dir + "/../include")) 30- /*TargetDirRequired=*/getTriple().isAndroid()))
31 return; 31+ /*TargetDirRequired=*/getTriple().isAndroid() | !computeSysRoot().empty()))
32 return;
32 // If this is a development, non-installed, clang, libcxx will 33 // If this is a development, non-installed, clang, libcxx will
34 // not be found at ../include/c++ but it likely to be found at
diff --git a/recipes-devtools/clang/clang/0026-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch b/recipes-devtools/clang/clang/0026-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch
index 90783bb..26e81f9 100644
--- a/recipes-devtools/clang/clang/0026-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch
+++ b/recipes-devtools/clang/clang/0026-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch
@@ -1,4 +1,4 @@
1From b00d9692a5337fdbbb5635cc9077061c47c7b741 Mon Sep 17 00:00:00 2001 1From 9a0b3da700e6e7b4045e310555de9cc55a8fdb98 Mon Sep 17 00:00:00 2001
2From: David Abdurachmanov <david.abdurachmanov@sifive.com> 2From: David Abdurachmanov <david.abdurachmanov@sifive.com>
3Date: Wed, 20 Oct 2021 17:30:36 -0700 3Date: Wed, 20 Oct 2021 17:30:36 -0700
4Subject: [PATCH] clang: Fix how driver finds GCC installation path on 4Subject: [PATCH] clang: Fix how driver finds GCC installation path on
@@ -31,10 +31,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
31 1 file changed, 39 insertions(+), 18 deletions(-) 31 1 file changed, 39 insertions(+), 18 deletions(-)
32 32
33diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp 33diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
34index f228bd14e8a8..d746db487e1f 100644 34index d883dc3e7558..c627602827c3 100644
35--- a/clang/lib/Driver/ToolChains/Gnu.cpp 35--- a/clang/lib/Driver/ToolChains/Gnu.cpp
36+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 36+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
37@@ -1793,23 +1793,38 @@ static void findRISCVMultilibs(const Driver &D, 37@@ -1909,23 +1909,38 @@ static void findRISCVMultilibs(const Driver &D,
38 return findRISCVBareMetalMultilibs(D, TargetTriple, Path, Args, Result); 38 return findRISCVBareMetalMultilibs(D, TargetTriple, Path, Args, Result);
39 39
40 FilterNonExistent NonExistent(Path, "/crtbegin.o", D.getVFS()); 40 FilterNonExistent NonExistent(Path, "/crtbegin.o", D.getVFS());
@@ -90,7 +90,7 @@ index f228bd14e8a8..d746db487e1f 100644
90 90
91 Multilib::flags_list Flags; 91 Multilib::flags_list Flags;
92 bool IsRV64 = TargetTriple.getArch() == llvm::Triple::riscv64; 92 bool IsRV64 = TargetTriple.getArch() == llvm::Triple::riscv64;
93@@ -2776,13 +2791,19 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( 93@@ -2945,13 +2960,19 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple(
94 continue; // Saw this path before; no need to look at it again. 94 continue; // Saw this path before; no need to look at it again.
95 if (CandidateVersion.isOlderThan(4, 1, 1)) 95 if (CandidateVersion.isOlderThan(4, 1, 1))
96 continue; 96 continue;
diff --git a/recipes-devtools/clang/clang/0027-Fix-lib-paths-for-OpenEmbedded-Host.patch b/recipes-devtools/clang/clang/0027-Fix-lib-paths-for-OpenEmbedded-Host.patch
index 59f3af1..b9e99bf 100644
--- a/recipes-devtools/clang/clang/0027-Fix-lib-paths-for-OpenEmbedded-Host.patch
+++ b/recipes-devtools/clang/clang/0027-Fix-lib-paths-for-OpenEmbedded-Host.patch
@@ -1,4 +1,4 @@
1From f910a403e898d42d589b694bc9856f052386136e Mon Sep 17 00:00:00 2001 1From f9eb5c0b5e69cba7aea90d7bb84f3cb39f889329 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com> 2From: Changqing Li <changqing.li@windriver.com>
3Date: Tue, 7 Dec 2021 04:08:22 +0000 3Date: Tue, 7 Dec 2021 04:08:22 +0000
4Subject: [PATCH] Fix lib paths for OpenEmbedded Host 4Subject: [PATCH] Fix lib paths for OpenEmbedded Host
@@ -48,7 +48,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
48 1 file changed, 4 insertions(+), 1 deletion(-) 48 1 file changed, 4 insertions(+), 1 deletion(-)
49 49
50diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp 50diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
51index d746db487e1f..020fd106a629 100644 51index c627602827c3..98d979ace17b 100644
52--- a/clang/lib/Driver/ToolChains/Gnu.cpp 52--- a/clang/lib/Driver/ToolChains/Gnu.cpp
53+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 53+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
54@@ -19,6 +19,7 @@ 54@@ -19,6 +19,7 @@
@@ -59,7 +59,7 @@ index d746db487e1f..020fd106a629 100644
59 #include "clang/Driver/Driver.h" 59 #include "clang/Driver/Driver.h"
60 #include "clang/Driver/DriverDiagnostic.h" 60 #include "clang/Driver/DriverDiagnostic.h"
61 #include "clang/Driver/MultilibBuilder.h" 61 #include "clang/Driver/MultilibBuilder.h"
62@@ -2749,6 +2750,7 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( 62@@ -2918,6 +2919,7 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple(
63 const llvm::Triple &TargetTriple, const ArgList &Args, 63 const llvm::Triple &TargetTriple, const ArgList &Args,
64 const std::string &LibDir, StringRef CandidateTriple, 64 const std::string &LibDir, StringRef CandidateTriple,
65 bool NeedsBiarchSuffix, bool GCCDirExists, bool GCCCrossDirExists) { 65 bool NeedsBiarchSuffix, bool GCCDirExists, bool GCCCrossDirExists) {
@@ -67,7 +67,7 @@ index d746db487e1f..020fd106a629 100644
67 // Locations relative to the system lib directory where GCC's triple-specific 67 // Locations relative to the system lib directory where GCC's triple-specific
68 // directories might reside. 68 // directories might reside.
69 struct GCCLibSuffix { 69 struct GCCLibSuffix {
70@@ -2766,7 +2768,8 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( 70@@ -2935,7 +2937,8 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple(
71 // files in that location, not just GCC installation data. 71 // files in that location, not just GCC installation data.
72 {CandidateTriple.str(), "..", 72 {CandidateTriple.str(), "..",
73 TargetTriple.getVendor() == llvm::Triple::Freescale || 73 TargetTriple.getVendor() == llvm::Triple::Freescale ||
diff --git a/recipes-devtools/clang/clang/0028-Correct-library-search-path-for-OpenEmbedded-Host.patch b/recipes-devtools/clang/clang/0028-Correct-library-search-path-for-OpenEmbedded-Host.patch
index 9fc5223..1f2abb5 100644
--- a/recipes-devtools/clang/clang/0028-Correct-library-search-path-for-OpenEmbedded-Host.patch
+++ b/recipes-devtools/clang/clang/0028-Correct-library-search-path-for-OpenEmbedded-Host.patch
@@ -1,4 +1,4 @@
1From 9ed567b3fcce1759947621765199f13261c615a4 Mon Sep 17 00:00:00 2001 1From aeb8e9d7234b6aca328ed9666a139bb1f5d00bdc Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com> 2From: Changqing Li <changqing.li@windriver.com>
3Date: Tue, 7 Dec 2021 04:55:48 +0000 3Date: Tue, 7 Dec 2021 04:55:48 +0000
4Subject: [PATCH] Correct library search path for OpenEmbedded Host 4Subject: [PATCH] Correct library search path for OpenEmbedded Host
@@ -39,7 +39,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
39 3 files changed, 4 insertions(+) 39 3 files changed, 4 insertions(+)
40 40
41diff --git a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h 41diff --git a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h
42index 8291f6575a71..7ce64b9a2c25 100644 42index a8de94163e8b..847d6a3f9d1a 100644
43--- a/clang/include/clang/Driver/Distro.h 43--- a/clang/include/clang/Driver/Distro.h
44+++ b/clang/include/clang/Driver/Distro.h 44+++ b/clang/include/clang/Driver/Distro.h
45@@ -45,6 +45,7 @@ public: 45@@ -45,6 +45,7 @@ public:
@@ -50,7 +50,7 @@ index 8291f6575a71..7ce64b9a2c25 100644
50 OpenSUSE, 50 OpenSUSE,
51 UbuntuHardy, 51 UbuntuHardy,
52 UbuntuIntrepid, 52 UbuntuIntrepid,
53@@ -136,6 +137,7 @@ public: 53@@ -137,6 +138,7 @@ public:
54 54
55 bool IsGentoo() const { return DistroVal == Gentoo; } 55 bool IsGentoo() const { return DistroVal == Gentoo; }
56 56
@@ -59,7 +59,7 @@ index 8291f6575a71..7ce64b9a2c25 100644
59 }; 59 };
60 60
61diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp 61diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
62index 6e0087565941..13e45b1ea088 100644 62index a7e7f169dc14..48d4e15196da 100644
63--- a/clang/lib/Driver/Distro.cpp 63--- a/clang/lib/Driver/Distro.cpp
64+++ b/clang/lib/Driver/Distro.cpp 64+++ b/clang/lib/Driver/Distro.cpp
65@@ -44,6 +44,7 @@ static Distro::DistroType DetectOsRelease(llvm::vfs::FileSystem &VFS) { 65@@ -44,6 +44,7 @@ static Distro::DistroType DetectOsRelease(llvm::vfs::FileSystem &VFS) {
@@ -71,10 +71,10 @@ index 6e0087565941..13e45b1ea088 100644
71 return Version; 71 return Version;
72 } 72 }
73diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 73diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
74index ef8435385130..8bd21eebfed3 100644 74index cf549331d255..699ff18b1240 100644
75--- a/clang/lib/Driver/ToolChains/Linux.cpp 75--- a/clang/lib/Driver/ToolChains/Linux.cpp
76+++ b/clang/lib/Driver/ToolChains/Linux.cpp 76+++ b/clang/lib/Driver/ToolChains/Linux.cpp
77@@ -78,6 +78,7 @@ std::string Linux::getMultiarchTriple(const Driver &D, 77@@ -82,6 +82,7 @@ std::string Linux::getMultiarchTriple(const Driver &D,
78 return "x86_64-linux-android"; 78 return "x86_64-linux-android";
79 if (TargetEnvironment == llvm::Triple::GNUX32) 79 if (TargetEnvironment == llvm::Triple::GNUX32)
80 return "x86_64-linux-gnux32"; 80 return "x86_64-linux-gnux32";
diff --git a/recipes-devtools/clang/clang/0029-lldb-Link-with-libatomic-on-x86.patch b/recipes-devtools/clang/clang/0029-lldb-Link-with-libatomic-on-x86.patch
index 6d71f75..0e155ef 100644
--- a/recipes-devtools/clang/clang/0029-lldb-Link-with-libatomic-on-x86.patch
+++ b/recipes-devtools/clang/clang/0029-lldb-Link-with-libatomic-on-x86.patch
@@ -1,4 +1,4 @@
1From 374f62b718dbb04a88764cdfa747cd42ebf57829 Mon Sep 17 00:00:00 2001 1From 9132301a280a8c60e18ab4299bd55f9beb869fac Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 8 Feb 2022 01:31:26 -0800 3Date: Tue, 8 Feb 2022 01:31:26 -0800
4Subject: [PATCH] lldb: Link with libatomic on x86 4Subject: [PATCH] lldb: Link with libatomic on x86
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 1 file changed, 4 insertions(+) 17 1 file changed, 4 insertions(+)
18 18
19diff --git a/lldb/source/Utility/CMakeLists.txt b/lldb/source/Utility/CMakeLists.txt 19diff --git a/lldb/source/Utility/CMakeLists.txt b/lldb/source/Utility/CMakeLists.txt
20index b376ace0ebe3..b9bb39220524 100644 20index a3b0a405b413..a68cfb503dfa 100644
21--- a/lldb/source/Utility/CMakeLists.txt 21--- a/lldb/source/Utility/CMakeLists.txt
22+++ b/lldb/source/Utility/CMakeLists.txt 22+++ b/lldb/source/Utility/CMakeLists.txt
23@@ -19,6 +19,10 @@ if (CMAKE_SYSTEM_NAME MATCHES "Windows") 23@@ -19,6 +19,10 @@ if (CMAKE_SYSTEM_NAME MATCHES "Windows")
diff --git a/recipes-devtools/clang/clang/0030-compiler-rt-Enable-__int128-for-ppc32.patch b/recipes-devtools/clang/clang/0030-compiler-rt-Enable-__int128-for-ppc32.patch
index 9eb42e5..bcb64dd 100644
--- a/recipes-devtools/clang/clang/0030-compiler-rt-Enable-__int128-for-ppc32.patch
+++ b/recipes-devtools/clang/clang/0030-compiler-rt-Enable-__int128-for-ppc32.patch
@@ -1,4 +1,4 @@
1From b907dbdce5520eaf841ae041fcca6941a8529456 Mon Sep 17 00:00:00 2001 1From 9decd876cd8352fac84aafe740a142f20b0f78fa Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 9 Mar 2022 16:28:16 -0800 3Date: Wed, 9 Mar 2022 16:28:16 -0800
4Subject: [PATCH] compiler-rt: Enable __int128 for ppc32 4Subject: [PATCH] compiler-rt: Enable __int128 for ppc32
@@ -11,10 +11,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
11 2 files changed, 8 insertions(+), 9 deletions(-) 11 2 files changed, 8 insertions(+), 9 deletions(-)
12 12
13diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt 13diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt
14index d62fa0432e2a..126505bd8921 100644 14index 28ded8766f25..08495c491f08 100644
15--- a/compiler-rt/lib/builtins/CMakeLists.txt 15--- a/compiler-rt/lib/builtins/CMakeLists.txt
16+++ b/compiler-rt/lib/builtins/CMakeLists.txt 16+++ b/compiler-rt/lib/builtins/CMakeLists.txt
17@@ -669,11 +669,9 @@ set(mips64_SOURCES ${GENERIC_TF_SOURCES} 17@@ -686,11 +686,9 @@ set(mips64_SOURCES ${GENERIC_TF_SOURCES}
18 set(mips64el_SOURCES ${GENERIC_TF_SOURCES} 18 set(mips64el_SOURCES ${GENERIC_TF_SOURCES}
19 ${mips_SOURCES}) 19 ${mips_SOURCES})
20 20
@@ -27,7 +27,7 @@ index d62fa0432e2a..126505bd8921 100644
27 ppc/divtc3.c 27 ppc/divtc3.c
28 ppc/fixtfdi.c 28 ppc/fixtfdi.c
29 ppc/fixunstfdi.c 29 ppc/fixunstfdi.c
30@@ -688,14 +686,15 @@ set(powerpc64_SOURCES 30@@ -705,14 +703,15 @@ set(powerpc64_SOURCES
31 ) 31 )
32 # These routines require __int128, which isn't supported on AIX. 32 # These routines require __int128, which isn't supported on AIX.
33 if (NOT OS_NAME MATCHES "AIX") 33 if (NOT OS_NAME MATCHES "AIX")
@@ -46,7 +46,7 @@ index d62fa0432e2a..126505bd8921 100644
46 46
47 set(riscv_SOURCES 47 set(riscv_SOURCES
48 riscv/fp_mode.c 48 riscv/fp_mode.c
49@@ -823,9 +822,9 @@ else () 49@@ -847,9 +846,9 @@ else ()
50 list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) 50 list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET)
51 endif() 51 endif()
52 52
@@ -59,7 +59,7 @@ index d62fa0432e2a..126505bd8921 100644
59 endif() 59 endif()
60 60
61diff --git a/compiler-rt/lib/builtins/int_types.h b/compiler-rt/lib/builtins/int_types.h 61diff --git a/compiler-rt/lib/builtins/int_types.h b/compiler-rt/lib/builtins/int_types.h
62index e94d3154c6d4..37b2cb43f932 100644 62index 7624c7280615..a45bf13f770e 100644
63--- a/compiler-rt/lib/builtins/int_types.h 63--- a/compiler-rt/lib/builtins/int_types.h
64+++ b/compiler-rt/lib/builtins/int_types.h 64+++ b/compiler-rt/lib/builtins/int_types.h
65@@ -64,7 +64,7 @@ typedef union { 65@@ -64,7 +64,7 @@ typedef union {
diff --git a/recipes-devtools/clang/clang/0031-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch b/recipes-devtools/clang/clang/0031-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch
index 37c93de..ec92a86 100644
--- a/recipes-devtools/clang/clang/0031-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch
+++ b/recipes-devtools/clang/clang/0031-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch
@@ -1,4 +1,4 @@
1From fc268457a7ef1a8481a1d563550cc8e9a8a5afcb Mon Sep 17 00:00:00 2001 1From bfadfbccf990c2768d18dc8d7fc756aa59e4964c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 12 Aug 2022 11:50:57 -0700 3Date: Fri, 12 Aug 2022 11:50:57 -0700
4Subject: [PATCH] llvm: Do not use cmake infra to detect libzstd 4Subject: [PATCH] llvm: Do not use cmake infra to detect libzstd
@@ -21,7 +21,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
21 1 file changed, 4 insertions(+), 4 deletions(-) 21 1 file changed, 4 insertions(+), 4 deletions(-)
22 22
23diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt 23diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt
24index 87fe7bebf688..e12e292fdfbf 100644 24index e19223fdef4f..9c8af2404545 100644
25--- a/llvm/lib/Support/CMakeLists.txt 25--- a/llvm/lib/Support/CMakeLists.txt
26+++ b/llvm/lib/Support/CMakeLists.txt 26+++ b/llvm/lib/Support/CMakeLists.txt
27@@ -22,7 +22,7 @@ if (HAS_WERROR_GLOBAL_CTORS) 27@@ -22,7 +22,7 @@ if (HAS_WERROR_GLOBAL_CTORS)
@@ -42,7 +42,7 @@ index 87fe7bebf688..e12e292fdfbf 100644
42 endif() 42 endif()
43 43
44 if( MSVC OR MINGW ) 44 if( MSVC OR MINGW )
45@@ -292,7 +292,7 @@ if(LLVM_ENABLE_ZLIB) 45@@ -306,7 +306,7 @@ if(LLVM_ENABLE_ZLIB)
46 get_property(zlib_library TARGET ZLIB::ZLIB PROPERTY LOCATION) 46 get_property(zlib_library TARGET ZLIB::ZLIB PROPERTY LOCATION)
47 endif() 47 endif()
48 get_library_name(${zlib_library} zlib_library) 48 get_library_name(${zlib_library} zlib_library)
@@ -51,7 +51,7 @@ index 87fe7bebf688..e12e292fdfbf 100644
51 endif() 51 endif()
52 52
53 if(LLVM_ENABLE_ZSTD) 53 if(LLVM_ENABLE_ZSTD)
54@@ -305,7 +305,7 @@ if(LLVM_ENABLE_ZSTD) 54@@ -319,7 +319,7 @@ if(LLVM_ENABLE_ZSTD)
55 get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION) 55 get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION)
56 endif() 56 endif()
57 get_library_name(${zstd_library} zstd_library) 57 get_library_name(${zstd_library} zstd_library)
diff --git a/recipes-devtools/clang/clang/0032-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch b/recipes-devtools/clang/clang/0032-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch
index 9d462b0..ce8f527 100644
--- a/recipes-devtools/clang/clang/0032-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch
+++ b/recipes-devtools/clang/clang/0032-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch
@@ -1,4 +1,4 @@
1From b5be1155dbe4d82fef53960f5df8a25770cd8bfc Mon Sep 17 00:00:00 2001 1From f42372b9a89b494573bcc8a9c2dd05c168ccdd54 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 3 Jan 2023 18:44:34 -0800 3Date: Tue, 3 Jan 2023 18:44:34 -0800
4Subject: [PATCH] compiler-rt: Fix stat struct's size for O32 ABI 4Subject: [PATCH] compiler-rt: Fix stat struct's size for O32 ABI
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 13 insertions(+) 14 1 file changed, 13 insertions(+)
15 15
16diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h 16diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
17index 58244c9944a0..70daaf279f4a 100644 17index 34bfef1f7ef4..0ba5451c1ccf 100644
18--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h 18--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
19+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h 19+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
20@@ -98,11 +98,24 @@ const unsigned struct_kernel_stat64_sz = 104; 20@@ -98,11 +98,24 @@ const unsigned struct_kernel_stat64_sz = 104;
diff --git a/recipes-devtools/clang/clang/0033-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch b/recipes-devtools/clang/clang/0033-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch
index dde742a..359131c 100644
--- a/recipes-devtools/clang/clang/0033-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch
+++ b/recipes-devtools/clang/clang/0033-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch
@@ -1,4 +1,4 @@
1From e8ecd192495c092dcee4fdb1ee5514222a8aa0c1 Mon Sep 17 00:00:00 2001 1From a6132924c06b4662eaed9820a13b63131ff8d4ff Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 21 Feb 2023 12:46:10 -0800 3Date: Tue, 21 Feb 2023 12:46:10 -0800
4Subject: [PATCH] compiler-rt: Undef _TIME_BITS along with _FILE_OFFSET_BITS in 4Subject: [PATCH] compiler-rt: Undef _TIME_BITS along with _FILE_OFFSET_BITS in
@@ -22,7 +22,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
22 1 file changed, 9 insertions(+) 22 1 file changed, 9 insertions(+)
23 23
24diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h 24diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
25index 764996e57355..99024169f925 100644 25index 596528155505..8f54ad70999c 100644
26--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h 26--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
27+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h 27+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
28@@ -22,6 +22,15 @@ 28@@ -22,6 +22,15 @@
diff --git a/recipes-devtools/clang/clang/0034-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch b/recipes-devtools/clang/clang/0034-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch
index 5a6b184..88b0440 100644
--- a/recipes-devtools/clang/clang/0034-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch
+++ b/recipes-devtools/clang/clang/0034-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch
@@ -1,4 +1,4 @@
1From 9fa41e535f7b95005e4aa2c764aebe674feeea69 Mon Sep 17 00:00:00 2001 1From 6021f23b2ce3166b2eb63fe48db71e6c593e1ac5 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com> 2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Thu, 31 Aug 2023 18:14:47 +0200 3Date: Thu, 31 Aug 2023 18:14:47 +0200
4Subject: [PATCH] ToolChains/Gnu.cpp: ARMLibDirs search also in lib32 4Subject: [PATCH] ToolChains/Gnu.cpp: ARMLibDirs search also in lib32
@@ -55,10 +55,10 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
55 2 files changed, 2 insertions(+), 1 deletion(-) 55 2 files changed, 2 insertions(+), 1 deletion(-)
56 56
57diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp 57diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
58index 020fd106a629..358c0ade7b27 100644 58index 98d979ace17b..c5aed9b47123 100644
59--- a/clang/lib/Driver/ToolChains/Gnu.cpp 59--- a/clang/lib/Driver/ToolChains/Gnu.cpp
60+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 60+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
61@@ -2325,7 +2325,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( 61@@ -2479,7 +2479,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
62 static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu", 62 static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",
63 "aarch64_be-linux-gnu"}; 63 "aarch64_be-linux-gnu"};
64 64
@@ -68,10 +68,10 @@ index 020fd106a629..358c0ade7b27 100644
68 static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf", 68 static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
69 "armv7hl-redhat-linux-gnueabi", 69 "armv7hl-redhat-linux-gnueabi",
70diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp 70diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
71index 8bd21eebfed3..2492db058cf9 100644 71index 699ff18b1240..4ed91b852562 100644
72--- a/clang/lib/Driver/ToolChains/Linux.cpp 72--- a/clang/lib/Driver/ToolChains/Linux.cpp
73+++ b/clang/lib/Driver/ToolChains/Linux.cpp 73+++ b/clang/lib/Driver/ToolChains/Linux.cpp
74@@ -198,6 +198,7 @@ static StringRef getOSLibDir(const llvm::Triple &Triple, const ArgList &Args) { 74@@ -202,6 +202,7 @@ static StringRef getOSLibDir(const llvm::Triple &Triple, const ArgList &Args) {
75 // reasoning about oslibdir spellings with the lib dir spellings in the 75 // reasoning about oslibdir spellings with the lib dir spellings in the
76 // GCCInstallationDetector, but that is a more significant refactoring. 76 // GCCInstallationDetector, but that is a more significant refactoring.
77 if (Triple.getArch() == llvm::Triple::x86 || Triple.isPPC32() || 77 if (Triple.getArch() == llvm::Triple::x86 || Triple.isPPC32() ||
diff --git a/recipes-devtools/clang/clang/0035-compiler-rt-Fix-cmake-check-for-_Float16-and-__bf16.patch b/recipes-devtools/clang/clang/0035-compiler-rt-Fix-cmake-check-for-_Float16-and-__bf16.patch
new file mode 100644
index 0000000..ee7c260
--- /dev/null
+++ b/recipes-devtools/clang/clang/0035-compiler-rt-Fix-cmake-check-for-_Float16-and-__bf16.patch
@@ -0,0 +1,42 @@
1From b44db6645cb65d060970b2535d372d6380d633f3 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 1 Mar 2024 16:47:46 -0800
4Subject: [PATCH] compiler-rt: Fix cmake check for _Float16 and __bf16
5
6When using check_c_source_compiles cmake function, main has to be
7provided, otherwise while compile step will be fine but linking step
8will fail as there will be no main function and test will fail and
9disable building HF builtins into compiler-rt
10
11Fixes configure errors like below
12
13aarch64-yoe-linux-ld.lld: error: undefined symbol: main
14 referenced by start.S:81 (../sysdeps/aarch64/start.S:81)
15 /mnt/b/yoe/master/build/tmp/work/cortexa72-cortexa53-crypto-yoe-linux/compiler-rt/18.1.0/recipe-sysroot/usr/lib/Scrt1.o:(_start)
16 referenced by start.S:82 (../sysdeps/aarch64/start.S:82)
17 /mnt/b/yoe/master/build/tmp/work/cortexa72-cortexa53-crypto-yoe-linux/compiler-rt/18.1.0/recipe-sysroot/usr/lib/Scrt1.o:(_start)
18 aarch64-yoe-linux-clang: error: linker command failed with exit code 1 (use -v to see invocation)
19
20Upstream-Status: Submitted [https://github.com/kraj/llvm-project/pull/new/kraj/compiler-rt-float16]
21Signed-off-by: Khem Raj <raj.khem@gmail.com>
22---
23 compiler-rt/lib/builtins/CMakeLists.txt | 4 ++--
24 1 file changed, 2 insertions(+), 2 deletions(-)
25
26diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt
27index 08495c491f08..bff96ba10bcd 100644
28--- a/compiler-rt/lib/builtins/CMakeLists.txt
29+++ b/compiler-rt/lib/builtins/CMakeLists.txt
30@@ -827,10 +827,10 @@ else ()
31 endif()
32 endif()
33 endif()
34- check_c_source_compiles("_Float16 foo(_Float16 x) { return x; }"
35+ check_c_source_compiles("_Float16 foo(_Float16 x) { return x; } int main(void) { return foo(1.0); }"
36 COMPILER_RT_HAS_${arch}_FLOAT16)
37 append_list_if(COMPILER_RT_HAS_${arch}_FLOAT16 -DCOMPILER_RT_HAS_FLOAT16 BUILTIN_CFLAGS_${arch})
38- check_c_source_compiles("__bf16 foo(__bf16 x) { return x; }"
39+ check_c_source_compiles("__bf16 foo(__bf16 x) { return x; } int main(void) { return foo(1.0); }"
40 COMPILER_RT_HAS_${arch}_BFLOAT16)
41 # Build BF16 files only when "__bf16" is available.
42 if(COMPILER_RT_HAS_${arch}_BFLOAT16)
diff --git a/recipes-devtools/clang/clang/0035-libcxx-Implement-LWG3545-std-pointer_traits-should-be-.patch b/recipes-devtools/clang/clang/0035-libcxx-Implement-LWG3545-std-pointer_traits-should-be-.patch
deleted file mode 100644
index af86540..0000000
--- a/recipes-devtools/clang/clang/0035-libcxx-Implement-LWG3545-std-pointer_traits-should-be-.patch
+++ /dev/null
@@ -1,660 +0,0 @@
1From 4d11d353656c5c848ddb2c13112cf1c2f8c041c0 Mon Sep 17 00:00:00 2001
2From: Daniel Cheng <zetafunction+github@gmail.com>
3Date: Mon, 18 Sep 2023 05:46:59 -0700
4Subject: [PATCH] [libc++] Implement LWG3545: std::pointer_traits should be
5 SFINAE-friendly. (#65177)
6
7See https://wg21.link/LWG3545 for background and details.
8
9Differential Revision: https://reviews.llvm.org/D158922
10
11Upstream-Status: Backport [https://github.com/llvm/llvm-project/pull/65177]
12---
13 libcxx/docs/Status/Cxx23Issues.csv | 2 +-
14 libcxx/include/__memory/pointer_traits.h | 17 +-
15 .../contiguous_iterator.verify.cpp | 54 ----
16 ...to_address_without_pointer_traits.pass.cpp | 66 ++++
17 .../pointer.traits/difference_type.pass.cpp | 28 --
18 .../pointer.traits/element_type.pass.cpp | 28 --
19 .../memory/pointer.traits/pointer.pass.cpp | 35 ---
20 .../memory/pointer.traits/rebind.pass.cpp | 32 --
21 .../pointer.traits/types.compile.pass.cpp | 289 ++++++++++++++++++
22 9 files changed, 367 insertions(+), 184 deletions(-)
23 delete mode 100644 libcxx/test/libcxx/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
24 create mode 100644 libcxx/test/std/utilities/memory/pointer.conversion/to_address_without_pointer_traits.pass.cpp
25 delete mode 100644 libcxx/test/std/utilities/memory/pointer.traits/difference_type.pass.cpp
26 delete mode 100644 libcxx/test/std/utilities/memory/pointer.traits/element_type.pass.cpp
27 delete mode 100644 libcxx/test/std/utilities/memory/pointer.traits/pointer.pass.cpp
28 delete mode 100644 libcxx/test/std/utilities/memory/pointer.traits/rebind.pass.cpp
29 create mode 100644 libcxx/test/std/utilities/memory/pointer.traits/types.compile.pass.cpp
30
31diff --git a/libcxx/docs/Status/Cxx23Issues.csv b/libcxx/docs/Status/Cxx23Issues.csv
32index 0cc06674bda3..dc96fb2e0b50 100644
33--- a/libcxx/docs/Status/Cxx23Issues.csv
34+++ b/libcxx/docs/Status/Cxx23Issues.csv
35@@ -190,7 +190,7 @@
36 "`3118 <https://wg21.link/LWG3118>`__","``fpos`` equality comparison unspecified", "November 2022","","",""
37 "`3177 <https://wg21.link/LWG3177>`__","Limit permission to specialize variable templates to program-defined types", "November 2022","|Nothing to do|","",""
38 "`3515 <https://wg21.link/LWG3515>`__","§[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized", "November 2022","","",""
39-"`3545 <https://wg21.link/LWG3545>`__","``std::pointer_traits`` should be SFINAE-friendly", "November 2022","","",""
40+"`3545 <https://wg21.link/LWG3545>`__","``std::pointer_traits`` should be SFINAE-friendly", "November 2022","|Complete|","18.0",""
41 "`3569 <https://wg21.link/LWG3569>`__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators", "November 2022","","","|ranges|"
42 "`3594 <https://wg21.link/LWG3594>`__","``inout_ptr`` — inconsistent ``release()`` in destructor", "November 2022","","",""
43 "`3597 <https://wg21.link/LWG3597>`__","Unsigned integer types don't model advanceable", "November 2022","","","|ranges|"
44diff --git a/libcxx/include/__memory/pointer_traits.h b/libcxx/include/__memory/pointer_traits.h
45index c33e7bd43f29..7617948ed76b 100644
46--- a/libcxx/include/__memory/pointer_traits.h
47+++ b/libcxx/include/__memory/pointer_traits.h
48@@ -35,7 +35,7 @@ template <class _Tp>
49 struct __has_element_type<_Tp, __void_t<typename _Tp::element_type> > : true_type {};
50
51 template <class _Ptr, bool = __has_element_type<_Ptr>::value>
52-struct __pointer_traits_element_type;
53+struct __pointer_traits_element_type {};
54
55 template <class _Ptr>
56 struct __pointer_traits_element_type<_Ptr, true>
57@@ -111,12 +111,14 @@ struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, false>
58 typedef _Sp<_Up, _Args...> type;
59 };
60
61+template <class _Ptr, class = void>
62+struct __pointer_traits_impl {};
63+
64 template <class _Ptr>
65-struct _LIBCPP_TEMPLATE_VIS pointer_traits
66-{
67- typedef _Ptr pointer;
68- typedef typename __pointer_traits_element_type<pointer>::type element_type;
69- typedef typename __pointer_traits_difference_type<pointer>::type difference_type;
70+struct __pointer_traits_impl<_Ptr, __void_t<typename __pointer_traits_element_type<_Ptr>::type> > {
71+ typedef _Ptr pointer;
72+ typedef typename __pointer_traits_element_type<pointer>::type element_type;
73+ typedef typename __pointer_traits_difference_type<pointer>::type difference_type;
74
75 #ifndef _LIBCPP_CXX03_LANG
76 template <class _Up> using rebind = typename __pointer_traits_rebind<pointer, _Up>::type;
77@@ -133,6 +135,9 @@ public:
78 {return pointer::pointer_to(__r);}
79 };
80
81+template <class _Ptr>
82+struct _LIBCPP_TEMPLATE_VIS pointer_traits : __pointer_traits_impl<_Ptr> {};
83+
84 template <class _Tp>
85 struct _LIBCPP_TEMPLATE_VIS pointer_traits<_Tp*>
86 {
87diff --git a/libcxx/test/libcxx/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp b/libcxx/test/libcxx/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
88deleted file mode 100644
89index 37c5ad9610a6..000000000000
90--- a/libcxx/test/libcxx/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.verify.cpp
91+++ /dev/null
92@@ -1,54 +0,0 @@
93-//===----------------------------------------------------------------------===//
94-//
95-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
96-// See https://llvm.org/LICENSE.txt for license information.
97-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
98-//
99-//===----------------------------------------------------------------------===//
100-
101-// UNSUPPORTED: c++03, c++11, c++14, c++17
102-
103-// This test checks that std::contiguous_iterator uses std::to_address, which is not SFINAE-friendly
104-// when the type is missing the `T::element_type` typedef.
105-
106-#include <iterator>
107-
108-#include <compare>
109-#include <cstddef>
110-
111-struct no_element_type {
112- typedef std::contiguous_iterator_tag iterator_category;
113- typedef int value_type;
114- typedef std::ptrdiff_t difference_type;
115- typedef int* pointer;
116- typedef int& reference;
117- typedef no_element_type self;
118-
119- no_element_type();
120-
121- reference operator*() const;
122- pointer operator->() const;
123- auto operator<=>(const self&) const = default;
124-
125- self& operator++();
126- self operator++(int);
127-
128- self& operator--();
129- self operator--(int);
130-
131- self& operator+=(difference_type n);
132- self operator+(difference_type n) const;
133- friend self operator+(difference_type n, self x);
134-
135- self& operator-=(difference_type n);
136- self operator-(difference_type n) const;
137- difference_type operator-(const self& n) const;
138-
139- reference operator[](difference_type n) const;
140-};
141-
142-void test() {
143- (void) std::contiguous_iterator<no_element_type>;
144- // expected-error@*:* {{implicit instantiation of undefined template}}
145- // expected-note@*:* {{to_address}}
146-}
147diff --git a/libcxx/test/std/utilities/memory/pointer.conversion/to_address_without_pointer_traits.pass.cpp b/libcxx/test/std/utilities/memory/pointer.conversion/to_address_without_pointer_traits.pass.cpp
148new file mode 100644
149index 000000000000..4d05c10e0fbd
150--- /dev/null
151+++ b/libcxx/test/std/utilities/memory/pointer.conversion/to_address_without_pointer_traits.pass.cpp
152@@ -0,0 +1,66 @@
153+//===----------------------------------------------------------------------===//
154+//
155+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
156+// See https://llvm.org/LICENSE.txt for license information.
157+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
158+//
159+//===----------------------------------------------------------------------===//
160+
161+// <memory>
162+
163+// UNSUPPORTED: c++03, c++11, c++14, c++17
164+
165+// template <class Ptr> constexpr auto to_address(const Ptr& p) noexcept;
166+// Should not require a specialization of pointer_traits for Ptr.
167+
168+#include <memory>
169+#include <type_traits>
170+#include <utility>
171+
172+struct IntPtr {
173+ constexpr int* operator->() const { return ptr; }
174+
175+ int* ptr;
176+};
177+
178+template <class T, bool>
179+struct TemplatedPtr {
180+ constexpr T* operator->() const { return ptr; }
181+
182+ T* ptr;
183+};
184+
185+template <template <class...> class Templ, class Ignore, class... Args>
186+struct is_valid_expansion_impl : std::false_type {};
187+
188+template <template <class...> class Templ, class... Args>
189+struct is_valid_expansion_impl<Templ, decltype((void)Templ<Args...>{}, 0), Args...> : std::true_type {};
190+
191+template <template <class...> class Templ, class... Args>
192+using is_valid_expansion = is_valid_expansion_impl<Templ, int, Args...>;
193+
194+template <class Ptr>
195+using TestToAddressCall = decltype(std::to_address(std::declval<Ptr>()));
196+
197+constexpr bool test() {
198+ int i = 0;
199+
200+ static_assert(std::to_address(IntPtr{nullptr}) == nullptr);
201+ static_assert(std::to_address(IntPtr{&i}) == &i);
202+
203+ bool b = false;
204+
205+ static_assert(std::to_address(TemplatedPtr<bool, true>{nullptr}) == nullptr);
206+ static_assert(std::to_address(TemplatedPtr<bool, true>{&b}) == &b);
207+
208+ static_assert(!is_valid_expansion<TestToAddressCall, int>::value);
209+ static_assert(is_valid_expansion<TestToAddressCall, IntPtr>::value);
210+ static_assert(is_valid_expansion<TestToAddressCall, TemplatedPtr<bool, true>>::value);
211+
212+ return true;
213+}
214+
215+int main(int, char**) {
216+ static_assert(test());
217+ return 0;
218+}
219diff --git a/libcxx/test/std/utilities/memory/pointer.traits/difference_type.pass.cpp b/libcxx/test/std/utilities/memory/pointer.traits/difference_type.pass.cpp
220deleted file mode 100644
221index 7546df902882..000000000000
222--- a/libcxx/test/std/utilities/memory/pointer.traits/difference_type.pass.cpp
223+++ /dev/null
224@@ -1,28 +0,0 @@
225-//===----------------------------------------------------------------------===//
226-//
227-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
228-// See https://llvm.org/LICENSE.txt for license information.
229-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
230-//
231-//===----------------------------------------------------------------------===//
232-
233-// <memory>
234-
235-// template <class T>
236-// struct pointer_traits<T*>
237-// {
238-// typedef ptrdiff_t difference_type;
239-// ...
240-// };
241-
242-#include <memory>
243-#include <type_traits>
244-
245-#include "test_macros.h"
246-
247-int main(int, char**)
248-{
249- static_assert((std::is_same<std::pointer_traits<double*>::difference_type, std::ptrdiff_t>::value), "");
250-
251- return 0;
252-}
253diff --git a/libcxx/test/std/utilities/memory/pointer.traits/element_type.pass.cpp b/libcxx/test/std/utilities/memory/pointer.traits/element_type.pass.cpp
254deleted file mode 100644
255index e4f11c28e29b..000000000000
256--- a/libcxx/test/std/utilities/memory/pointer.traits/element_type.pass.cpp
257+++ /dev/null
258@@ -1,28 +0,0 @@
259-//===----------------------------------------------------------------------===//
260-//
261-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
262-// See https://llvm.org/LICENSE.txt for license information.
263-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
264-//
265-//===----------------------------------------------------------------------===//
266-
267-// <memory>
268-
269-// template <class T>
270-// struct pointer_traits<T*>
271-// {
272-// typedef T element_type;
273-// ...
274-// };
275-
276-#include <memory>
277-#include <type_traits>
278-
279-#include "test_macros.h"
280-
281-int main(int, char**)
282-{
283- static_assert((std::is_same<std::pointer_traits<const short*>::element_type, const short>::value), "");
284-
285- return 0;
286-}
287diff --git a/libcxx/test/std/utilities/memory/pointer.traits/pointer.pass.cpp b/libcxx/test/std/utilities/memory/pointer.traits/pointer.pass.cpp
288deleted file mode 100644
289index 14054b3c4f65..000000000000
290--- a/libcxx/test/std/utilities/memory/pointer.traits/pointer.pass.cpp
291+++ /dev/null
292@@ -1,35 +0,0 @@
293-//===----------------------------------------------------------------------===//
294-//
295-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
296-// See https://llvm.org/LICENSE.txt for license information.
297-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
298-//
299-//===----------------------------------------------------------------------===//
300-
301-// <memory>
302-
303-// template <class Ptr>
304-// struct pointer_traits
305-// {
306-// typedef Ptr pointer;
307-// ...
308-// };
309-
310-#include <memory>
311-#include <type_traits>
312-
313-#include "test_macros.h"
314-
315-struct A
316-{
317- typedef short element_type;
318- typedef char difference_type;
319-};
320-
321-int main(int, char**)
322-{
323- static_assert((std::is_same<std::pointer_traits<A>::pointer, A>::value), "");
324- static_assert((std::is_same<std::pointer_traits<int*>::pointer, int*>::value), "");
325-
326- return 0;
327-}
328diff --git a/libcxx/test/std/utilities/memory/pointer.traits/rebind.pass.cpp b/libcxx/test/std/utilities/memory/pointer.traits/rebind.pass.cpp
329deleted file mode 100644
330index f64213c9b887..000000000000
331--- a/libcxx/test/std/utilities/memory/pointer.traits/rebind.pass.cpp
332+++ /dev/null
333@@ -1,32 +0,0 @@
334-//===----------------------------------------------------------------------===//
335-//
336-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
337-// See https://llvm.org/LICENSE.txt for license information.
338-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
339-//
340-//===----------------------------------------------------------------------===//
341-
342-// <memory>
343-
344-// template <class T>
345-// struct pointer_traits<T*>
346-// {
347-// template <class U> using rebind = U*;
348-// ...
349-// };
350-
351-#include <memory>
352-#include <type_traits>
353-
354-#include "test_macros.h"
355-
356-int main(int, char**)
357-{
358-#if TEST_STD_VER >= 11
359- static_assert((std::is_same<std::pointer_traits<int*>::rebind<double>, double*>::value), "");
360-#else
361- static_assert((std::is_same<std::pointer_traits<int*>::rebind<double>::other, double*>::value), "");
362-#endif
363-
364- return 0;
365-}
366diff --git a/libcxx/test/std/utilities/memory/pointer.traits/types.compile.pass.cpp b/libcxx/test/std/utilities/memory/pointer.traits/types.compile.pass.cpp
367new file mode 100644
368index 000000000000..19461508ca0f
369--- /dev/null
370+++ b/libcxx/test/std/utilities/memory/pointer.traits/types.compile.pass.cpp
371@@ -0,0 +1,289 @@
372+//===----------------------------------------------------------------------===//
373+//
374+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
375+// See https://llvm.org/LICENSE.txt for license information.
376+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
377+//
378+//===----------------------------------------------------------------------===//
379+
380+// <memory>
381+
382+// template <class Ptr>
383+// struct pointer_traits
384+// {
385+// <details>
386+// };
387+//
388+// template <class T>
389+// struct pointer_traits<T*>
390+// {
391+// using pointer = T*;
392+// using element_type = T;
393+// using difference_type = ptrdiff_t;
394+// template <class U> using rebind = U*;
395+// static constexpr pointer pointer_to(<details>) noexcept;
396+// ...
397+// };
398+
399+#include <memory>
400+#include <type_traits>
401+
402+#include "test_macros.h"
403+
404+template <typename... Ts>
405+struct VoidifyImpl {
406+ using type = void;
407+};
408+
409+template <typename... Ts>
410+using Voidify = typename VoidifyImpl<Ts...>::type;
411+
412+template <class T, class = void>
413+struct HasElementType : std::false_type {};
414+
415+template <class T>
416+struct HasElementType<T, Voidify<typename std::pointer_traits<T>::element_type> > : std::true_type {};
417+
418+template <class T, class = void>
419+struct HasPointerType : std::false_type {};
420+
421+template <class T>
422+struct HasPointerType<T, Voidify<typename std::pointer_traits<T>::pointer> > : std::true_type {};
423+
424+template <class T, class = void>
425+struct HasDifferenceType : std::false_type {};
426+
427+template <class T>
428+struct HasDifferenceType<T, Voidify<typename std::pointer_traits<T>::difference_type> > : std::true_type {};
429+
430+template <class T, class U, class = void>
431+struct HasRebind : std::false_type {};
432+
433+template <class T, class U>
434+struct HasRebind<T, U, Voidify<typename std::pointer_traits<T>::template rebind<U> > > : std::true_type {};
435+
436+template <class T, class = void>
437+struct HasPointerTo : std::false_type {};
438+
439+template <class T>
440+struct HasPointerTo<
441+ T,
442+ Voidify<decltype(std::pointer_traits<T>::pointer_to(
443+ std::declval<typename std::add_lvalue_reference<typename std::pointer_traits<T>::element_type>::type>()))> >
444+ : std::true_type {};
445+
446+struct Irrelevant;
447+
448+struct NotAPtr {};
449+
450+struct LongPtr {};
451+
452+int global_int;
453+
454+template <class T, class Arg>
455+struct TemplatedPtr;
456+
457+struct PtrWithElementType {
458+ using element_type = int;
459+ template <class U>
460+#if TEST_STD_VER >= 11
461+ using rebind = TemplatedPtr<U, Irrelevant>;
462+#else
463+ struct rebind {
464+ using other = TemplatedPtr<U, Irrelevant>;
465+ };
466+#endif
467+ static TEST_CONSTEXPR_CXX14 PtrWithElementType pointer_to(element_type&) { return {&global_int}; }
468+ int* ptr;
469+};
470+
471+template <class T, class Arg>
472+struct TemplatedPtr {
473+ template <class U, class = typename std::enable_if<std::is_same<long, U>::value>::type>
474+#if TEST_STD_VER >= 11
475+ using rebind = LongPtr;
476+#else
477+ struct rebind {
478+ using other = LongPtr;
479+ };
480+#endif
481+ static TEST_CONSTEXPR_CXX14 TemplatedPtr pointer_to(T&) { return {&global_int}; }
482+
483+ T* ptr;
484+};
485+
486+template <class T, class Arg>
487+struct TemplatedPtrWithElementType {
488+ using element_type = int;
489+#if TEST_STD_VER >= 11
490+ template <class U, class = typename std::enable_if<std::is_same<long, U>::value>::type>
491+ using rebind = LongPtr;
492+#else
493+ template <class U, class = typename std::enable_if<std::is_same<long, U>::value>::type>
494+ struct rebind {
495+ using other = LongPtr;
496+ };
497+#endif
498+ static TEST_CONSTEXPR_CXX14 TemplatedPtrWithElementType pointer_to(element_type&) { return {&global_int}; }
499+
500+ element_type* ptr;
501+};
502+
503+int main() {
504+ {
505+ using Ptr = NotAPtr;
506+ static_assert(!HasElementType<Ptr>::value, "");
507+ static_assert(!HasPointerType<Ptr>::value, "");
508+ static_assert(!HasDifferenceType<Ptr>::value, "");
509+ static_assert(!HasRebind<Ptr, long>::value, "");
510+ static_assert(!HasPointerTo<Ptr>::value, "");
511+ }
512+
513+ {
514+ using Ptr = int*;
515+
516+ static_assert(HasElementType<Ptr>::value, "");
517+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::element_type, int);
518+
519+ static_assert(HasPointerType<Ptr>::value, "");
520+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::pointer, Ptr);
521+
522+ static_assert(HasDifferenceType<Ptr>::value, "");
523+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::difference_type, ptrdiff_t);
524+
525+ static_assert(HasRebind<Ptr, long>::value, "");
526+#if TEST_STD_VER >= 11
527+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>, long*);
528+#else
529+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>::other, long*);
530+#endif
531+
532+ static_assert(HasPointerTo<Ptr>::value, "");
533+ int variable = 0;
534+ ASSERT_SAME_TYPE(decltype(std::pointer_traits<Ptr>::pointer_to(variable)), Ptr);
535+#if TEST_STD_VER >= 20
536+ static_assert(std::pointer_traits<Ptr>::pointer_to(variable) == &variable, "");
537+#endif
538+ }
539+
540+ {
541+ using Ptr = const int*;
542+
543+ static_assert(HasElementType<Ptr>::value, "");
544+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::element_type, const int);
545+
546+ static_assert(HasPointerType<Ptr>::value, "");
547+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::pointer, Ptr);
548+
549+ static_assert(HasDifferenceType<Ptr>::value, "");
550+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::difference_type, ptrdiff_t);
551+
552+ static_assert(HasRebind<Ptr, long>::value, "");
553+#if TEST_STD_VER >= 11
554+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>, long*);
555+#else
556+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>::other, long*);
557+#endif
558+
559+ static_assert(HasPointerTo<Ptr>::value, "");
560+ const int const_variable = 0;
561+ ASSERT_SAME_TYPE(decltype(std::pointer_traits<Ptr>::pointer_to(const_variable)), Ptr);
562+#if TEST_STD_VER >= 20
563+ static_assert(std::pointer_traits<Ptr>::pointer_to(const_variable) == &const_variable, "");
564+#endif
565+ int variable = 0;
566+ ASSERT_SAME_TYPE(decltype(std::pointer_traits<Ptr>::pointer_to(variable)), Ptr);
567+#if TEST_STD_VER >= 20
568+ static_assert(std::pointer_traits<Ptr>::pointer_to(variable) == &variable, "");
569+#endif
570+ }
571+
572+ {
573+ using Ptr = PtrWithElementType;
574+
575+ static_assert(HasElementType<Ptr>::value, "");
576+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::element_type, int);
577+
578+ static_assert(HasPointerType<Ptr>::value, "");
579+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::pointer, Ptr);
580+
581+ static_assert(HasDifferenceType<Ptr>::value, "");
582+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::difference_type, ptrdiff_t);
583+
584+ static_assert(HasRebind<Ptr, long>::value, "");
585+#if TEST_STD_VER >= 11
586+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>, TemplatedPtr<long, Irrelevant>);
587+#else
588+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>::other, TemplatedPtr<long, Irrelevant>);
589+#endif
590+
591+ static_assert(HasPointerTo<Ptr>::value, "");
592+ int ignored = 0;
593+ ASSERT_SAME_TYPE(decltype(std::pointer_traits<Ptr>::pointer_to(ignored)), Ptr);
594+#if TEST_STD_VER >= 20
595+ static_assert(std::pointer_traits<Ptr>::pointer_to(ignored).ptr == &global_int, "");
596+#endif
597+ }
598+
599+ {
600+ using Ptr = TemplatedPtr<int, Irrelevant>;
601+
602+ static_assert(HasElementType<Ptr>::value, "");
603+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::element_type, int);
604+
605+ static_assert(HasPointerType<Ptr>::value, "");
606+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::pointer, Ptr);
607+
608+ static_assert(HasDifferenceType<Ptr>::value, "");
609+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::difference_type, ptrdiff_t);
610+
611+ static_assert(HasRebind<Ptr, long>::value, "");
612+ static_assert(HasRebind<Ptr, long long>::value, "");
613+#if TEST_STD_VER >= 11
614+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>, LongPtr);
615+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long long>, TemplatedPtr<long long, Irrelevant>);
616+#else
617+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>::other, LongPtr);
618+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long long>::other, TemplatedPtr<long long, Irrelevant>);
619+#endif
620+
621+ static_assert(HasPointerTo<Ptr>::value, "");
622+ int ignored = 0;
623+ ASSERT_SAME_TYPE(decltype(std::pointer_traits<Ptr>::pointer_to(ignored)), Ptr);
624+#if TEST_STD_VER >= 20
625+ static_assert(std::pointer_traits<Ptr>::pointer_to(ignored).ptr == &global_int, "");
626+#endif
627+ }
628+
629+ {
630+ using Ptr = TemplatedPtrWithElementType<Irrelevant, Irrelevant>;
631+
632+ static_assert(HasElementType<Ptr>::value, "");
633+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::element_type, int);
634+
635+ static_assert(HasPointerType<Ptr>::value, "");
636+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::pointer, Ptr);
637+
638+ static_assert(HasDifferenceType<Ptr>::value, "");
639+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::difference_type, ptrdiff_t);
640+
641+ static_assert(HasRebind<Ptr, long>::value, "");
642+ static_assert(HasRebind<Ptr, long long>::value, "");
643+#if TEST_STD_VER >= 11
644+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>, LongPtr);
645+ ASSERT_SAME_TYPE(
646+ typename std::pointer_traits<Ptr>::rebind<long long>, TemplatedPtrWithElementType<long long, Irrelevant>);
647+#else
648+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long>::other, LongPtr);
649+ ASSERT_SAME_TYPE(typename std::pointer_traits<Ptr>::rebind<long long>::other,
650+ TemplatedPtrWithElementType<long long, Irrelevant>);
651+#endif
652+
653+ static_assert(HasPointerTo<Ptr>::value, "");
654+ int ignored = 0;
655+ ASSERT_SAME_TYPE(decltype(std::pointer_traits<Ptr>::pointer_to(ignored)), Ptr);
656+#if TEST_STD_VER >= 20
657+ static_assert(std::pointer_traits<Ptr>::pointer_to(ignored).ptr == &global_int, "");
658+#endif
659+ }
660+}
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb
index 07cba57..2891a3a 100644
--- a/recipes-devtools/clang/clang_git.bb
+++ b/recipes-devtools/clang/clang_git.bb
@@ -155,6 +155,7 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
155 -DBUILD_SHARED_LIBS=OFF \ 155 -DBUILD_SHARED_LIBS=OFF \
156 -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \ 156 -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \
157 -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR} \ 157 -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR} \
158 -DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \
158 -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ 159 -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
159 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ 160 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \
160 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ 161 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \
diff --git a/recipes-devtools/clang/common.inc b/recipes-devtools/clang/common.inc
index c004d16..2f7d27d 100644
--- a/recipes-devtools/clang/common.inc
+++ b/recipes-devtools/clang/common.inc
@@ -43,7 +43,7 @@ SRC_URI = "\
43 file://0032-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch \ 43 file://0032-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch \
44 file://0033-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch \ 44 file://0033-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch \
45 file://0034-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch \ 45 file://0034-ToolChains-Gnu.cpp-ARMLibDirs-search-also-in-lib32.patch \
46 file://0035-libcxx-Implement-LWG3545-std-pointer_traits-should-be-.patch \ 46 file://0035-compiler-rt-Fix-cmake-check-for-_Float16-and-__bf16.patch \
47 " 47 "
48# Fallback to no-PIE if not set 48# Fallback to no-PIE if not set
49GCCPIE ??= "" 49GCCPIE ??= ""