From fdb446f0da8b41c95a7954804b22e0a97438368e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 18 Jun 2023 01:04:20 -0700 Subject: clang: Backport patch to fix lld link failures on riscv64 Signed-off-by: Khem Raj --- ...ind-libunwind-headers-when-LIBCXXABI_LIBU.patch | 2 +- ...er-rt-support-a-new-embedded-linux-target.patch | 2 +- ...-Simplify-cross-compilation.-Don-t-use-na.patch | 2 +- ...LibraryInfo-Undefine-libc-functions-if-th.patch | 2 +- ...allow-env-override-of-exe-and-libdir-path.patch | 2 +- ...-clang-driver-Check-sysroot-for-ldso-path.patch | 2 +- ...iver-tools.cpp-Add-lssp_nonshared-on-musl.patch | 2 +- .../0008-clang-Prepend-trailing-to-sysroot.patch | 2 +- ...inside-the-target-sysroot-for-compiler-ru.patch | 2 +- ...ang-Define-releative-gcc-installation-dir.patch | 2 +- ...pthread-and-ldl-along-with-lunwind-for-st.patch | 6 +- ..._EXECUTABLE-when-cross-compiling-for-nati.patch | 2 +- .../0013-Check-for-atomic-double-intrinsics.patch | 2 +- ...compiler-runtime-library-to-link-step-for.patch | 2 +- ...cmake-Fix-configure-for-packages-using-fi.patch | 4 +- ...esource-dir-location-for-cross-toolchains.patch | 2 +- ...r-Add-dyld-prefix-when-checking-sysroot-f.patch | 2 +- .../0018-clang-Use-python3-in-python-scripts.patch | 2 +- ...4-set-Yocto-based-GCC-install-search-path.patch | 4 +- ...-llvm-Do-not-use-find_library-for-ncurses.patch | 2 +- ...-anchor-for-adding-OE-distro-vendor-names.patch | 4 +- ...-Do-not-use-backtrace-APIs-on-non-glibc-l.patch | 2 +- ...86-triple-for-non-debian-multiarch-linux-.patch | 2 +- ...0024-libunwind-Added-unw_backtrace-method.patch | 2 +- ...-Do-not-use-install-relative-libc-headers.patch | 2 +- ...ow-driver-finds-GCC-installation-path-on-.patch | 2 +- .../0027-Fix-lib-paths-for-OpenEmbedded-Host.patch | 2 +- ...library-search-path-for-OpenEmbedded-Host.patch | 2 +- .../0029-lldb-Link-with-libatomic-on-x86.patch | 2 +- ...de-openembedded-distributions-from-settin.patch | 6 +- ...031-compiler-rt-Enable-__int128-for-ppc32.patch | 2 +- ...-Do-not-use-cmake-infra-to-detect-libzstd.patch | 8 +- ...Enable-64bit-off_t-on-32bit-glibc-systems.patch | 2 +- ...-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch | 2 +- ...ler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch | 2 +- ...-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch | 2 +- .../0037-Call-printName-to-get-name-of-Decl.patch | 70 ++++++++++++++++++ ...-clang-Call-printName-to-get-name-of-Decl.patch | 70 ------------------ ...o-prefix-map-to-anonymous-tags-in-templat.patch | 84 +++++++++++++++++++++ ...-fmacro-prefix-map-to-anonymous-tags-in-t.patch | 86 ---------------------- ...andle-relaxation-reductions-of-more-than-.patch | 78 ++++++++++++++++++++ recipes-devtools/clang/common.inc | 5 +- 42 files changed, 281 insertions(+), 204 deletions(-) create mode 100644 recipes-devtools/clang/clang/0037-Call-printName-to-get-name-of-Decl.patch delete mode 100644 recipes-devtools/clang/clang/0037-clang-Call-printName-to-get-name-of-Decl.patch create mode 100644 recipes-devtools/clang/clang/0038-Apply-fmacro-prefix-map-to-anonymous-tags-in-templat.patch delete mode 100644 recipes-devtools/clang/clang/0038-clang-Apply-fmacro-prefix-map-to-anonymous-tags-in-t.patch create mode 100644 recipes-devtools/clang/clang/0039-lld-RISCV-Handle-relaxation-reductions-of-more-than-.patch 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 db46e2f..cc62160 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 @@ -From 60d418bdd291f061e32a73ffee7ad7acc27a4768 Mon Sep 17 00:00:00 2001 +From bfea0b41ba225254c159194e911e2238103f70e4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 27 Aug 2017 10:37:49 -0700 Subject: [PATCH] libcxxabi: Find libunwind headers when 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 4c525be..047280e 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 @@ -From f205cf35a9ad116b291b2b36a50800e4573e6ac6 Mon Sep 17 00:00:00 2001 +From 4aa8c16b7caed1924e7ddafff7dd0c719cac3d7e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 19 Apr 2015 15:16:23 -0700 Subject: [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 802a35f..12432d0 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 @@ -From e1031fdbe63c6065b89e1e15f9bbc62cd36cd898 Mon Sep 17 00:00:00 2001 +From 4c8897954c3a49fd215e7bb1b1777a814c911e60 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 19 May 2016 23:11:45 -0700 Subject: [PATCH] compiler-rt: Simplify cross-compilation. Don't use 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 23a0c93..6927ebd 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 @@ -From 1279fd32e3809fe9b8f0bddab69042a92637282b Mon Sep 17 00:00:00 2001 +From d333a8f789767d1aad9288861dbde840fc9de14a Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 21 May 2016 00:33:20 +0000 Subject: [PATCH] llvm: TargetLibraryInfo: Undefine libc functions if they are 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 055dc2b..b2cece8 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 @@ -From 8f8e25be1822d93341b0e32ba42d22c8c54016d4 Mon Sep 17 00:00:00 2001 +From 67c2f3e7f44144a98ce0fb09809d5759405874eb Mon Sep 17 00:00:00 2001 From: Martin Kelly Date: Fri, 19 May 2017 00:22:57 -0700 Subject: [PATCH] llvm: allow env override of exe and libdir path 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 eff80b2..f280da2 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 @@ -From 953b9d2c5a7ef4224dec304154feceb30e2b836f Mon Sep 17 00:00:00 2001 +From 710a936d66011859cb3995f42a5b9e962db01f0e Mon Sep 17 00:00:00 2001 From: Dan McGregor Date: Wed, 26 Apr 2017 20:29:41 -0600 Subject: [PATCH] clang: driver: Check sysroot for ldso path 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 a9d059f..afbe3be 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 @@ -From c35e16f856192a090696b033bc5a32af18f592ac Mon Sep 17 00:00:00 2001 +From c6e80e71adaddab21bccc15ff827078d58010a65 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 19 May 2016 21:11:06 -0700 Subject: [PATCH] clang: Driver/tools.cpp: Add -lssp_nonshared on musl 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 bd340a0..f0e54ff 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 @@ -From 51b99c1b9836f2e6967f1192f16fb639e127df2e Mon Sep 17 00:00:00 2001 +From 4cf32ee02831483cc999d1e60d401cb301f85bfc Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 16 Mar 2017 09:02:13 -0700 Subject: [PATCH] clang: Prepend trailing '/' to sysroot 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 a8914e7..90b286a 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 @@ -From 243f40f492fbbbc3104de0fc77eef3122a4a42c4 Mon Sep 17 00:00:00 2001 +From c865d5064247bfc985bc92409869cd21ca5c74e9 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 16 Mar 2017 19:06:26 -0700 Subject: [PATCH] clang: Look inside the target sysroot for compiler runtime 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 429e6c0..761e1b1 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 @@ -From d1fdcd76fc759e644d697c967ddfbeae279aa7ac Mon Sep 17 00:00:00 2001 +From cd12100c9acd1b9d57d6386d1e9d4b9baa775866 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 20 Mar 2021 16:09:16 -0700 Subject: [PATCH] clang: Define / releative gcc installation dir 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 9916a46..7e765fe 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 @@ -From 16ec16d11424040b83b360199ab785650bd1fb65 Mon Sep 17 00:00:00 2001 +From c16c0db65b24497a27fcc89012bfb37000a6e937 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 31 Jul 2019 22:51:39 -0700 Subject: [PATCH] clang: Add -lpthread and -ldl along with -lunwind for static @@ -21,10 +21,10 @@ Signed-off-by: Khem Raj 1 file changed, 2 insertions(+) diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp -index 0883631dfe98..dfab4075e03e 100644 +index 34640b3c450d..580d326935c0 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp -@@ -1718,6 +1718,8 @@ static void AddUnwindLibrary(const ToolChain &TC, const Driver &D, +@@ -1725,6 +1725,8 @@ static void AddUnwindLibrary(const ToolChain &TC, const Driver &D, CmdArgs.push_back("-lunwind"); } else if (LGT == LibGccType::StaticLibGcc) { 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 00ee658..3f6c158 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 @@ -From e9e65cc455973c05ae3502b84bc90b3f8b70b438 Mon Sep 17 00:00:00 2001 +From 4cfb62329c5b2ef54b7e0db4597fbb188948be65 Mon Sep 17 00:00:00 2001 From: Anuj Mittal Date: Thu, 26 Dec 2019 12:56:16 -0800 Subject: [PATCH] Pass PYTHON_EXECUTABLE when cross compiling for native 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 9d92055..ca539b3 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 @@ -From b0310dcff11cade76add2b84f9d694fc626284ee Mon Sep 17 00:00:00 2001 +From 9fc922e61ce39a12e99b4ff66475443b1dc61ab2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 18 Nov 2019 17:00:29 -0800 Subject: [PATCH] Check for atomic 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 82d3790..8518c06 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 @@ -From fbe1464c92e5b4e078390c040f0a7f446cda81f0 Mon Sep 17 00:00:00 2001 +From 4c2d34597815c045615725b185f2e08461a68432 Mon Sep 17 00:00:00 2001 From: Jeremy Puhlman Date: Thu, 16 Jan 2020 21:16:10 +0000 Subject: [PATCH] libcxx: Add compiler runtime library to link step for libcxx 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 eef316b..07c8935 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 @@ -From f16083f3436f1286941547b3036787f128c9d8a4 Mon Sep 17 00:00:00 2001 +From aafbba9f341d5e6d5293371fad130472bee85c5c Mon Sep 17 00:00:00 2001 From: Ovidiu Panait Date: Fri, 31 Jan 2020 10:56:11 +0200 Subject: [PATCH] clang,llvm: cmake: Fix configure for packages using @@ -52,7 +52,7 @@ index 75b0080f6715..ddf446a13eca 100644 endif() endmacro() diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake -index 94fc83db9344..5155b0222d87 100644 +index 93e6d67551de..d8123389957b 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -1335,7 +1335,6 @@ macro(llvm_add_tool project name) 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 f1c9614..ddfc76f 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 @@ -From 3b58bf71bf2908d1c7361e420b13330366402ea6 Mon Sep 17 00:00:00 2001 +From 4afad7aec9a18b35e934d50b2f99dc464d6ead0e Mon Sep 17 00:00:00 2001 From: Jim Broadus Date: Thu, 26 Mar 2020 16:05:53 -0700 Subject: [PATCH] clang: Fix resource dir location for cross toolchains 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 e991499..01182b7 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 @@ -From a9127817f4ceb0f19e99c89c08ffb1d9d256d1a2 Mon Sep 17 00:00:00 2001 +From a1fdade00611749a75b958e1010db68d4cefff95 Mon Sep 17 00:00:00 2001 From: Oleksandr Ocheretnyi Date: Wed, 15 Apr 2020 00:08:39 +0300 Subject: [PATCH] clang: driver: Add dyld-prefix when checking sysroot for ldso 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 cef5633..7c9c0c7 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 @@ -From 5b8fe61522fbf453b514fc1c9f317742cf34cbcd Mon Sep 17 00:00:00 2001 +From 9c415718a3b38bd19d82b624fa0f564ad0f7a1fa Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 14 Oct 2020 22:19:57 -0700 Subject: [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 11cdec3..bf5b48d 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 @@ -From ca344d46711d5ce6b5e0f7862b98bbfc7abb7d4c Mon Sep 17 00:00:00 2001 +From 4498ef187dd9a9fc83fb433110c2af7b94f3aac0 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Mon, 25 Jan 2021 16:14:35 +0800 Subject: [PATCH] For x86_64, set Yocto based GCC install search path @@ -45,7 +45,7 @@ is different between clang and clang-native The //CLANG_EXTRA_OE_VENDORS_TRIPLES string is replaced with list of additional triples based on CLANG_EXTRA_OE_VENDORS variable in -recipes-devtools/clang/llvm-project-source.inc:add_distro_vendor() +recipes-devtools/clang/llvm-project-source.inc:add_more_target_vendors() Upstream-Status: Inappropriate [oe specific] 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 8cd862e..d461614 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 @@ -From 20208fe7aaaf65837d06bd00a5550134075a2b22 Mon Sep 17 00:00:00 2001 +From 72388158dd0791b597fdc7ffd6913de0401f4b43 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 7 Feb 2021 23:58:41 -0800 Subject: [PATCH] llvm: Do not use find_library for ncurses 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 f3d728f..17c83eb 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 @@ -From c63accf38a7c7db518e01311b23e661392af916d Mon Sep 17 00:00:00 2001 +From 9ac3b933821e3cb3fa71985c8a4f6291d1810d92 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 11 Feb 2021 16:42:49 -0800 Subject: [PATCH] llvm: Insert anchor for adding OE distro vendor names @@ -7,7 +7,7 @@ This helps in making right detection for OE built gcc toolchains The //CLANG_EXTRA_OE_VENDORS_CASES string is replaced with list of additional Ceses based on CLANG_EXTRA_OE_VENDORS variable in -recipes-devtools/clang/llvm-project-source.inc:add_distro_vendor() +recipes-devtools/clang/llvm-project-source.inc:add_more_target_vendors() Upstream-Status: Inappropriate [OE-specific] 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 968bde2..4dea592 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 @@ -From f8ee0a66ba5b81f5489d8954dfc521f6b2612c6d Mon Sep 17 00:00:00 2001 +From 671ccc83d1e5da6a08ca8bcec2a70df57a955bf8 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 19 May 2021 17:32:13 -0700 Subject: [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 cd00a18..1cc785e 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 @@ -From 013ee27a17e32ddf078bf33a82293a9f9980512e Mon Sep 17 00:00:00 2001 +From b51eef97a31d797941c88bc228e220fef13f8e7e Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 19 May 2021 17:56:03 -0700 Subject: [PATCH] clang: Fix x86 triple for non-debian multiarch linux distros 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 22b00b8..55d9714 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 @@ -From 959667047a6d92e3912762c8db5695a945c564b4 Mon Sep 17 00:00:00 2001 +From 841592392822de2d39c0a208b0a2f9fc7e9b184d Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Sun, 23 May 2021 10:27:29 +0000 Subject: [PATCH] libunwind: Added unw_backtrace method 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 944fd92..4e5832a 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 @@ -From d249ebabcd4e0350acf3595f80160110cb0ab56d Mon Sep 17 00:00:00 2001 +From 8b052f0c29a83176e4b17e9890e1aa279da9a7cf Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 11 Aug 2021 18:37:11 -0700 Subject: [PATCH] clang: Do not use install relative libc++ headers 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 306249d..402fc11 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 @@ -From 1801fad99e1dedbe8d40931b18c37d326a1d532c Mon Sep 17 00:00:00 2001 +From 96a3194262a641ac20e1bf19f9db7f657e03785f Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Wed, 20 Oct 2021 17:30:36 -0700 Subject: [PATCH] clang: Fix how driver finds GCC installation path on 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 50f783f..3bac5b5 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 @@ -From b8dd608a9ca83b9c321dce3ca0d18e8aeea987af Mon Sep 17 00:00:00 2001 +From a7b8523a9f649ca3bdc2759e2bb500bc7f957b48 Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Tue, 7 Dec 2021 04:08:22 +0000 Subject: [PATCH] Fix lib paths for OpenEmbedded Host 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 b120f17..fc45054 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 @@ -From a4574f3cfd55c014d0e09956fe413835debe1b87 Mon Sep 17 00:00:00 2001 +From 18cf3957bb9a0021059c64dc8e640028be821bc3 Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Tue, 7 Dec 2021 04:55:48 +0000 Subject: [PATCH] Correct library search path for OpenEmbedded Host 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 e55d7a4..666e14d 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 @@ -From e9c06e4994d4cd52d8783838186df8c93ffd0052 Mon Sep 17 00:00:00 2001 +From 5a16f3cf25bfa15ddccb72f16d296648d6512ede Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 8 Feb 2022 01:31:26 -0800 Subject: [PATCH] lldb: Link with libatomic on x86 diff --git a/recipes-devtools/clang/clang/0030-clang-exclude-openembedded-distributions-from-settin.patch b/recipes-devtools/clang/clang/0030-clang-exclude-openembedded-distributions-from-settin.patch index 00bd81b..d1a9fd5 100644 --- a/recipes-devtools/clang/clang/0030-clang-exclude-openembedded-distributions-from-settin.patch +++ b/recipes-devtools/clang/clang/0030-clang-exclude-openembedded-distributions-from-settin.patch @@ -1,4 +1,4 @@ -From b34b67256aa36ceb6bce1b6f657ad129ecf90313 Mon Sep 17 00:00:00 2001 +From 43418cfdfc19953e43c5e1f62fd0720f160de1a2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 11 Feb 2022 12:29:14 -0800 Subject: [PATCH] clang: exclude openembedded distributions from setting rpath @@ -18,10 +18,10 @@ Signed-off-by: Khem Raj 1 file changed, 5 insertions(+) diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp -index dfab4075e03e..14c6f0a3b21d 100644 +index 580d326935c0..412218f04df5 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp -@@ -794,6 +794,11 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, +@@ -801,6 +801,11 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs) { diff --git a/recipes-devtools/clang/clang/0031-compiler-rt-Enable-__int128-for-ppc32.patch b/recipes-devtools/clang/clang/0031-compiler-rt-Enable-__int128-for-ppc32.patch index 5c19c67..9ebc57e 100644 --- a/recipes-devtools/clang/clang/0031-compiler-rt-Enable-__int128-for-ppc32.patch +++ b/recipes-devtools/clang/clang/0031-compiler-rt-Enable-__int128-for-ppc32.patch @@ -1,4 +1,4 @@ -From 2a622188e62705f20d7806926a99f47f727d8858 Mon Sep 17 00:00:00 2001 +From cd16176a1b45061623ec0219a12a0a7a407fa738 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 9 Mar 2022 16:28:16 -0800 Subject: [PATCH] compiler-rt: Enable __int128 for ppc32 diff --git a/recipes-devtools/clang/clang/0032-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch b/recipes-devtools/clang/clang/0032-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch index d89f108..c52aa55 100644 --- a/recipes-devtools/clang/clang/0032-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch +++ b/recipes-devtools/clang/clang/0032-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch @@ -1,4 +1,4 @@ -From ab07bcf103432f49aeff486e2898110c879e8bc0 Mon Sep 17 00:00:00 2001 +From 6f1ddaf3cfca94d3c3d00d0e7e9486eaf98f8b44 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 12 Aug 2022 11:50:57 -0700 Subject: [PATCH] llvm: Do not use cmake infra to detect libzstd @@ -21,7 +21,7 @@ Signed-off-by: Khem Raj 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt -index 8fbb2ca4c164..a6daa7c9f20f 100644 +index 4cbc3b79f3bb..08c4bfd5efc1 100644 --- a/llvm/lib/Support/CMakeLists.txt +++ b/llvm/lib/Support/CMakeLists.txt @@ -22,7 +22,7 @@ if (HAS_WERROR_GLOBAL_CTORS) @@ -42,7 +42,7 @@ index 8fbb2ca4c164..a6daa7c9f20f 100644 endif() if( MSVC OR MINGW ) -@@ -291,7 +291,7 @@ if(LLVM_ENABLE_ZLIB) +@@ -292,7 +292,7 @@ if(LLVM_ENABLE_ZLIB) get_property(zlib_library TARGET ZLIB::ZLIB PROPERTY LOCATION) endif() get_library_name(${zlib_library} zlib_library) @@ -51,7 +51,7 @@ index 8fbb2ca4c164..a6daa7c9f20f 100644 endif() if(LLVM_ENABLE_ZSTD) -@@ -304,7 +304,7 @@ if(LLVM_ENABLE_ZSTD) +@@ -305,7 +305,7 @@ if(LLVM_ENABLE_ZSTD) get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION) endif() get_library_name(${zstd_library} zstd_library) diff --git a/recipes-devtools/clang/clang/0033-build-Enable-64bit-off_t-on-32bit-glibc-systems.patch b/recipes-devtools/clang/clang/0033-build-Enable-64bit-off_t-on-32bit-glibc-systems.patch index adb06c4..85a0a0d 100644 --- a/recipes-devtools/clang/clang/0033-build-Enable-64bit-off_t-on-32bit-glibc-systems.patch +++ b/recipes-devtools/clang/clang/0033-build-Enable-64bit-off_t-on-32bit-glibc-systems.patch @@ -1,4 +1,4 @@ -From 48cf70c06ae6085ff3d1f8b28e323f153cff23c6 Mon Sep 17 00:00:00 2001 +From 81298058cd344f695fe22da4a367db08709a85e1 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 25 Dec 2022 15:13:41 -0800 Subject: [PATCH] build: Enable 64bit off_t on 32bit glibc systems diff --git a/recipes-devtools/clang/clang/0034-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch b/recipes-devtools/clang/clang/0034-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch index f97814d..ab35769 100644 --- a/recipes-devtools/clang/clang/0034-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch +++ b/recipes-devtools/clang/clang/0034-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch @@ -1,4 +1,4 @@ -From 3c7ebde16bea113e119b2ef7134b10cd8d7e3b1c Mon Sep 17 00:00:00 2001 +From 6c4db3884b0271d80725fc8912083c48e9f3112c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 31 Dec 2022 15:03:24 -0800 Subject: [PATCH] compiler-rt: Undef _TIME_BITS along with _FILE_OFFSET_BITS on diff --git a/recipes-devtools/clang/clang/0035-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch b/recipes-devtools/clang/clang/0035-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch index ee31c1d..afdb6bc 100644 --- a/recipes-devtools/clang/clang/0035-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch +++ b/recipes-devtools/clang/clang/0035-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch @@ -1,4 +1,4 @@ -From 577a70fd39778fb7e3bcd22b6c6713fcb516c365 Mon Sep 17 00:00:00 2001 +From eb6c2fe33206567b6a658d74bfd2a906f61893ed Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 3 Jan 2023 18:44:34 -0800 Subject: [PATCH] compiler-rt: Fix stat struct's size for O32 ABI diff --git a/recipes-devtools/clang/clang/0036-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch b/recipes-devtools/clang/clang/0036-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch index 4b937e8..b30b475 100644 --- a/recipes-devtools/clang/clang/0036-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch +++ b/recipes-devtools/clang/clang/0036-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch @@ -1,4 +1,4 @@ -From c62140c7e116fabe7bccf9b55848c74e5beefccd Mon Sep 17 00:00:00 2001 +From 46643a33c0889bc6cb4034337b02962c673e0ac4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 21 Feb 2023 12:46:10 -0800 Subject: [PATCH] compiler-rt: Undef _TIME_BITS along with _FILE_OFFSET_BITS in diff --git a/recipes-devtools/clang/clang/0037-Call-printName-to-get-name-of-Decl.patch b/recipes-devtools/clang/clang/0037-Call-printName-to-get-name-of-Decl.patch new file mode 100644 index 0000000..4909828 --- /dev/null +++ b/recipes-devtools/clang/clang/0037-Call-printName-to-get-name-of-Decl.patch @@ -0,0 +1,70 @@ +From ab8b6331592fb92a2dc1c689483a4772d51aed8b Mon Sep 17 00:00:00 2001 +From: Dan McGregor +Date: Tue, 21 Mar 2023 13:04:51 -0600 +Subject: [PATCH] Call printName to get name of Decl + +Rather than sending a name directly to the stream, use printName +to preserve any PrintingPolicy. This ensures that names are properly +affected by path remapping. + +Differential Revision: https://reviews.llvm.org/D149272 + +Upstream-Status: Pending +--- + clang/lib/AST/Decl.cpp | 4 ++-- + clang/lib/AST/DeclarationName.cpp | 4 ++-- + clang/test/CodeGen/debug-prefix-map.cpp | 11 +++++++++++ + 3 files changed, 15 insertions(+), 4 deletions(-) + create mode 100644 clang/test/CodeGen/debug-prefix-map.cpp + +diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp +index e60cc28f6e0f..24de6156c0f5 100644 +--- a/clang/lib/AST/Decl.cpp ++++ b/clang/lib/AST/Decl.cpp +@@ -1626,8 +1626,8 @@ Module *Decl::getOwningModuleForLinkage(bool IgnoreLinkage) const { + llvm_unreachable("unknown module kind"); + } + +-void NamedDecl::printName(raw_ostream &OS, const PrintingPolicy&) const { +- OS << Name; ++void NamedDecl::printName(raw_ostream &OS, const PrintingPolicy &Policy) const { ++ Name.print(OS, Policy); + } + + void NamedDecl::printName(raw_ostream &OS) const { +diff --git a/clang/lib/AST/DeclarationName.cpp b/clang/lib/AST/DeclarationName.cpp +index c1219041a466..da8b3886c340 100644 +--- a/clang/lib/AST/DeclarationName.cpp ++++ b/clang/lib/AST/DeclarationName.cpp +@@ -117,12 +117,12 @@ static void printCXXConstructorDestructorName(QualType ClassType, + Policy.adjustForCPlusPlus(); + + if (const RecordType *ClassRec = ClassType->getAs()) { +- OS << *ClassRec->getDecl(); ++ ClassRec->getDecl()->printName(OS, Policy); + return; + } + if (Policy.SuppressTemplateArgsInCXXConstructors) { + if (auto *InjTy = ClassType->getAs()) { +- OS << *InjTy->getDecl(); ++ InjTy->getDecl()->printName(OS, Policy); + return; + } + } +diff --git a/clang/test/CodeGen/debug-prefix-map.cpp b/clang/test/CodeGen/debug-prefix-map.cpp +new file mode 100644 +index 000000000000..5e90aedd8ed7 +--- /dev/null ++++ b/clang/test/CodeGen/debug-prefix-map.cpp +@@ -0,0 +1,11 @@ ++// RUN: %clang_cc1 -debug-info-kind=standalone -fdebug-prefix-map=%p=./UNLIKELY_PATH/empty -S %s -emit-llvm -o - | FileCheck %s ++ ++struct alignas(64) an { ++ struct { ++ unsigned char x{0}; ++ } arr[64]; ++}; ++ ++struct an *pan = new an; ++ ++// CHECK: !DISubprogram(name: "(unnamed struct at ./UNLIKELY_PATH/empty{{/|\\\\}}{{.*}}", diff --git a/recipes-devtools/clang/clang/0037-clang-Call-printName-to-get-name-of-Decl.patch b/recipes-devtools/clang/clang/0037-clang-Call-printName-to-get-name-of-Decl.patch deleted file mode 100644 index 1332c5d..0000000 --- a/recipes-devtools/clang/clang/0037-clang-Call-printName-to-get-name-of-Decl.patch +++ /dev/null @@ -1,70 +0,0 @@ -From d33d6a8c4f43907cb53130730a2bc48624a34b74 Mon Sep 17 00:00:00 2001 -From: Dan McGregor -Date: Tue, 21 Mar 2023 13:04:51 -0600 -Subject: [PATCH] [clang] Call printName to get name of Decl - -Rather than sending a name directly to the stream, use printName -to preserve any PrintingPolicy. This ensures that names are properly -affected by path remapping. - -Differential Revision: https://reviews.llvm.org/D149272 - -Upstream-Status: Pending ---- - clang/lib/AST/Decl.cpp | 4 ++-- - clang/lib/AST/DeclarationName.cpp | 4 ++-- - clang/test/CodeGen/debug-prefix-map.cpp | 11 +++++++++++ - 3 files changed, 15 insertions(+), 4 deletions(-) - create mode 100644 clang/test/CodeGen/debug-prefix-map.cpp - -diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp -index e60cc28f6e0f..24de6156c0f5 100644 ---- a/clang/lib/AST/Decl.cpp -+++ b/clang/lib/AST/Decl.cpp -@@ -1626,8 +1626,8 @@ Module *Decl::getOwningModuleForLinkage(bool IgnoreLinkage) const { - llvm_unreachable("unknown module kind"); - } - --void NamedDecl::printName(raw_ostream &OS, const PrintingPolicy&) const { -- OS << Name; -+void NamedDecl::printName(raw_ostream &OS, const PrintingPolicy &Policy) const { -+ Name.print(OS, Policy); - } - - void NamedDecl::printName(raw_ostream &OS) const { -diff --git a/clang/lib/AST/DeclarationName.cpp b/clang/lib/AST/DeclarationName.cpp -index c1219041a466..da8b3886c340 100644 ---- a/clang/lib/AST/DeclarationName.cpp -+++ b/clang/lib/AST/DeclarationName.cpp -@@ -117,12 +117,12 @@ static void printCXXConstructorDestructorName(QualType ClassType, - Policy.adjustForCPlusPlus(); - - if (const RecordType *ClassRec = ClassType->getAs()) { -- OS << *ClassRec->getDecl(); -+ ClassRec->getDecl()->printName(OS, Policy); - return; - } - if (Policy.SuppressTemplateArgsInCXXConstructors) { - if (auto *InjTy = ClassType->getAs()) { -- OS << *InjTy->getDecl(); -+ InjTy->getDecl()->printName(OS, Policy); - return; - } - } -diff --git a/clang/test/CodeGen/debug-prefix-map.cpp b/clang/test/CodeGen/debug-prefix-map.cpp -new file mode 100644 -index 000000000000..7ddaee531282 ---- /dev/null -+++ b/clang/test/CodeGen/debug-prefix-map.cpp -@@ -0,0 +1,11 @@ -+// RUN: %clang_cc1 -debug-info-kind=standalone -fdebug-prefix-map=%p=./UNLIKELY_PATH/empty -S %s -emit-llvm -o - | FileCheck %s -+ -+struct alignas(64) an { -+ struct { -+ unsigned char x{0}; -+ } arr[64]; -+}; -+ -+struct an *pan = new an; -+ -+// CHECK: !DISubprogram(name: "(unnamed struct at ./UNLIKELY_PATH/empty{{/|\\\\}}{{.*}}", diff --git a/recipes-devtools/clang/clang/0038-Apply-fmacro-prefix-map-to-anonymous-tags-in-templat.patch b/recipes-devtools/clang/clang/0038-Apply-fmacro-prefix-map-to-anonymous-tags-in-templat.patch new file mode 100644 index 0000000..12c8d73 --- /dev/null +++ b/recipes-devtools/clang/clang/0038-Apply-fmacro-prefix-map-to-anonymous-tags-in-templat.patch @@ -0,0 +1,84 @@ +From 648ef1a807d27d51b7cddbf2df7499984c857ba4 Mon Sep 17 00:00:00 2001 +From: Dan McGregor +Date: Fri, 16 Jun 2023 08:47:00 -0700 +Subject: [PATCH] Apply -fmacro-prefix-map to anonymous tags in template + arguments + +When expanding template arguments for pretty function printing, +such as for __PRETTY_FUNCTION__, make TypePrinter apply +macro-prefix-map remapping to anonymous tags such as lambdas. + +Fixes https://github.com/llvm/llvm-project/issues/63219 + +Reviewed By: MaskRay, aaron.ballman + +Differential Revision: https://reviews.llvm.org/D152570 + +Upstream-Status: Backport [https://reviews.llvm.org/D152570] +Signed-off-by: Khem Raj +--- + clang/docs/ReleaseNotes.rst | 2 ++ + clang/lib/AST/Expr.cpp | 14 ++++++++++++++ + clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp | 14 ++++++++++++++ + 3 files changed, 30 insertions(+) + create mode 100644 clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp + +diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst +index 8d67ff904469..bf3ea4a54d01 100644 +--- a/clang/docs/ReleaseNotes.rst ++++ b/clang/docs/ReleaseNotes.rst +@@ -724,6 +724,8 @@ Bug Fixes in This Version + - Fix crash when passing a braced initializer list to a parentehsized aggregate + initialization expression. + (`#63008 `_). ++- Apply ``-fmacro-prefix-map`` to anonymous tags in template arguments ++ (`#63219 `_). + + Bug Fixes to Compiler Builtins + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp +index e45ae68cd5fe..a65678f5998c 100644 +--- a/clang/lib/AST/Expr.cpp ++++ b/clang/lib/AST/Expr.cpp +@@ -783,7 +783,21 @@ std::string PredefinedExpr::ComputeName(IdentKind IK, const Decl *CurrentDecl) { + Out << "static "; + } + ++ class PrettyCallbacks final : public PrintingCallbacks { ++ public: ++ PrettyCallbacks(const LangOptions &LO) : LO(LO) {} ++ std::string remapPath(StringRef Path) const override { ++ SmallString<128> p(Path); ++ LO.remapPathPrefix(p); ++ return std::string(p); ++ } ++ ++ private: ++ const LangOptions &LO; ++ }; + PrintingPolicy Policy(Context.getLangOpts()); ++ PrettyCallbacks PrettyCB(Context.getLangOpts()); ++ Policy.Callbacks = &PrettyCB; + std::string Proto; + llvm::raw_string_ostream POut(Proto); + +diff --git a/clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp b/clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp +new file mode 100644 +index 000000000000..e87f0ab484dc +--- /dev/null ++++ b/clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp +@@ -0,0 +1,14 @@ ++// RUN: %clang_cc1 -triple %itanium_abi_triple -fmacro-prefix-map=%p=./UNLIKELY_PATH/empty %s -emit-llvm -o - | FileCheck %s ++ ++template ++auto lambdatest(f&& cb) { ++ const char *s = __PRETTY_FUNCTION__; ++ return s; ++} ++ ++int main() { ++ auto *s = lambdatest([](){}); ++// CHECK: @"__PRETTY_FUNCTION__._Z10lambdatestIZ4mainE3$_0EDaOT_" = private unnamed_addr constant [{{[0-9]+}} x i8] c"auto lambdatest(f &&) [f = (lambda at ./UNLIKELY_PATH/empty{{/|\\\\}}{{.*}}.cpp:[[#@LINE-1]]:24)]\00", align 1 ++ ++ return 0; ++} diff --git a/recipes-devtools/clang/clang/0038-clang-Apply-fmacro-prefix-map-to-anonymous-tags-in-t.patch b/recipes-devtools/clang/clang/0038-clang-Apply-fmacro-prefix-map-to-anonymous-tags-in-t.patch deleted file mode 100644 index 08c8822..0000000 --- a/recipes-devtools/clang/clang/0038-clang-Apply-fmacro-prefix-map-to-anonymous-tags-in-t.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 98a5709ff5a34a2906536e110d227f83898f550b Mon Sep 17 00:00:00 2001 -From: Dan McGregor -Date: Fri, 16 Jun 2023 08:47:00 -0700 -Subject: [PATCH] [clang] Apply -fmacro-prefix-map to anonymous tags in - template arguments - -When expanding template arguments for pretty function printing, -such as for __PRETTY_FUNCTION__, make TypePrinter apply -macro-prefix-map remapping to anonymous tags such as lambdas. - -Fixes https://github.com/llvm/llvm-project/issues/63219 - -Reviewed By: MaskRay, aaron.ballman - -Differential Revision: https://reviews.llvm.org/D152570 - -Upstream-Status: Backport ---- - clang/docs/ReleaseNotes.rst | 2 ++ - clang/lib/AST/Expr.cpp | 14 ++++++++++++++ - clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp | 14 ++++++++++++++ - 3 files changed, 30 insertions(+) - create mode 100644 clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp - -diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst -index 8d67ff904469..bf3ea4a54d01 100644 ---- a/clang/docs/ReleaseNotes.rst -+++ b/clang/docs/ReleaseNotes.rst -@@ -724,6 +724,8 @@ Bug Fixes in This Version - - Fix crash when passing a braced initializer list to a parentehsized aggregate - initialization expression. - (`#63008 `_). -+- Apply ``-fmacro-prefix-map`` to anonymous tags in template arguments -+ (`#63219 `_). - - Bug Fixes to Compiler Builtins - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp -index e45ae68cd5fe..a65678f5998c 100644 ---- a/clang/lib/AST/Expr.cpp -+++ b/clang/lib/AST/Expr.cpp -@@ -783,7 +783,21 @@ std::string PredefinedExpr::ComputeName(IdentKind IK, const Decl *CurrentDecl) { - Out << "static "; - } - -+ class PrettyCallbacks final : public PrintingCallbacks { -+ public: -+ PrettyCallbacks(const LangOptions &LO) : LO(LO) {} -+ std::string remapPath(StringRef Path) const override { -+ SmallString<128> p(Path); -+ LO.remapPathPrefix(p); -+ return std::string(p); -+ } -+ -+ private: -+ const LangOptions &LO; -+ }; - PrintingPolicy Policy(Context.getLangOpts()); -+ PrettyCallbacks PrettyCB(Context.getLangOpts()); -+ Policy.Callbacks = &PrettyCB; - std::string Proto; - llvm::raw_string_ostream POut(Proto); - -diff --git a/clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp b/clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp -new file mode 100644 -index 000000000000..e87f0ab484dc ---- /dev/null -+++ b/clang/test/CodeGenCXX/macro-prefix-map-lambda.cpp -@@ -0,0 +1,14 @@ -+// RUN: %clang_cc1 -triple %itanium_abi_triple -fmacro-prefix-map=%p=./UNLIKELY_PATH/empty %s -emit-llvm -o - | FileCheck %s -+ -+template -+auto lambdatest(f&& cb) { -+ const char *s = __PRETTY_FUNCTION__; -+ return s; -+} -+ -+int main() { -+ auto *s = lambdatest([](){}); -+// CHECK: @"__PRETTY_FUNCTION__._Z10lambdatestIZ4mainE3$_0EDaOT_" = private unnamed_addr constant [{{[0-9]+}} x i8] c"auto lambdatest(f &&) [f = (lambda at ./UNLIKELY_PATH/empty{{/|\\\\}}{{.*}}.cpp:[[#@LINE-1]]:24)]\00", align 1 -+ -+ return 0; -+} --- -2.40.1 - diff --git a/recipes-devtools/clang/clang/0039-lld-RISCV-Handle-relaxation-reductions-of-more-than-.patch b/recipes-devtools/clang/clang/0039-lld-RISCV-Handle-relaxation-reductions-of-more-than-.patch new file mode 100644 index 0000000..713cd3a --- /dev/null +++ b/recipes-devtools/clang/clang/0039-lld-RISCV-Handle-relaxation-reductions-of-more-than-.patch @@ -0,0 +1,78 @@ +From 1405446343007159cdbef39b37427b3cc2e94266 Mon Sep 17 00:00:00 2001 +From: Roland McGrath +Date: Tue, 16 May 2023 13:35:35 -0700 +Subject: [PATCH] [lld][RISCV] Handle relaxation reductions of more than 65536 + bytes + +In a real-world case with functions that have many, many +R_RISCV_CALL_PLT relocations due to asan and ubsan +instrumentation, all these can be relaxed by an instruction and +the net result is more than 65536 bytes of reduction in the +output .text section that totals about 1.2MiB in final size. + +This changes InputSection to use a 32-bit field for bytesDropped. +The RISCV relaxation keeps track in a 64-bit field and detects +32-bit overflow as it previously detected 16-bit overflow. It +doesn't seem likely that 32-bit overflow will arise, but it's not +inconceivable and it's cheap enough to detect it. + +This unfortunately increases the size of InputSection on 64-bit +hosts by a word, but that seems hard to avoid. + +Reviewed By: MaskRay + +Differential Revision: https://reviews.llvm.org/D150722 + +Upstream-Status: Backport [https://github.com/llvm/llvm-project/commit/9d37ea95df1b84cca9b5e954d8964c976a5e303e] +Signed-off-by: Khem Raj +--- + lld/ELF/Arch/RISCV.cpp | 6 +++--- + lld/ELF/InputSection.h | 4 ++-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/lld/ELF/Arch/RISCV.cpp b/lld/ELF/Arch/RISCV.cpp +index 87887b314a5a..80754e37d3ed 100644 +--- a/lld/ELF/Arch/RISCV.cpp ++++ b/lld/ELF/Arch/RISCV.cpp +@@ -621,7 +621,7 @@ static bool relax(InputSection &sec) { + // iteration. + DenseMap valueDelta; + ArrayRef sa = ArrayRef(aux.anchors); +- uint32_t delta = 0; ++ uint64_t delta = 0; + for (auto [i, r] : llvm::enumerate(sec.relocs())) { + for (; sa.size() && sa[0].offset <= r.offset; sa = sa.slice(1)) + if (!sa[0].end) +@@ -688,8 +688,8 @@ static bool relax(InputSection &sec) { + a.d->value -= delta - valueDelta.find(a.d)->second; + } + // Inform assignAddresses that the size has changed. +- if (!isUInt<16>(delta)) +- fatal("section size decrease is too large"); ++ if (!isUInt<32>(delta)) ++ fatal("section size decrease is too large: " + Twine(delta)); + sec.bytesDropped = delta; + return changed; + } +diff --git a/lld/ELF/InputSection.h b/lld/ELF/InputSection.h +index 356ccda2d743..143384b3ba7b 100644 +--- a/lld/ELF/InputSection.h ++++ b/lld/ELF/InputSection.h +@@ -137,7 +137,7 @@ public: + // Used by --optimize-bb-jumps and RISC-V linker relaxation temporarily to + // indicate the number of bytes which is not counted in the size. This should + // be reset to zero after uses. +- uint16_t bytesDropped = 0; ++ uint32_t bytesDropped = 0; + + mutable bool compressed = false; + +@@ -401,7 +401,7 @@ private: + template void copyShtGroup(uint8_t *buf); + }; + +-static_assert(sizeof(InputSection) <= 152, "InputSection is too big"); ++static_assert(sizeof(InputSection) <= 160, "InputSection is too big"); + + class SyntheticSection : public InputSection { + public: diff --git a/recipes-devtools/clang/common.inc b/recipes-devtools/clang/common.inc index 11a7410..ad3e7c5 100644 --- a/recipes-devtools/clang/common.inc +++ b/recipes-devtools/clang/common.inc @@ -46,8 +46,9 @@ SRC_URI = "\ file://0034-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch \ file://0035-compiler-rt-Fix-stat-struct-s-size-for-O32-ABI.patch \ file://0036-compiler-rt-Undef-_TIME_BITS-along-with-_FILE_OFFSET.patch \ - file://0037-clang-Call-printName-to-get-name-of-Decl.patch \ - file://0038-clang-Apply-fmacro-prefix-map-to-anonymous-tags-in-t.patch \ + file://0037-Call-printName-to-get-name-of-Decl.patch \ + file://0038-Apply-fmacro-prefix-map-to-anonymous-tags-in-templat.patch \ + file://0039-lld-RISCV-Handle-relaxation-reductions-of-more-than-.patch \ " # Fallback to no-PIE if not set GCCPIE ??= "" -- cgit v1.2.3-54-g00ecf